From 0a6bfc839299b45f074936728194511bf3cad448 Mon Sep 17 00:00:00 2001 From: DannyAbdi <dannyabdi13@gmail.com> Date: Thu, 15 Feb 2024 01:21:56 +0000 Subject: [PATCH] Created enemy class to represent enemy agents in the maze --- button_dfs.png | Bin 1845 -> 0 bytes enemy.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) delete mode 100644 button_dfs.png create mode 100644 enemy.py diff --git a/button_dfs.png b/button_dfs.png deleted file mode 100644 index 8f563c304bb31abe3d64e1b89925807bd78c9fd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1845 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 diff --git a/enemy.py b/enemy.py new file mode 100644 index 0000000..6c32d2a --- /dev/null +++ b/enemy.py @@ -0,0 +1,45 @@ +import random +from config import * + +""" +Class representing an enemy agent in the game. +""" +class Enemy: + """ + Initialise the Enemy object. + + :param maze (Maze): The maze object representing the game environment. + :param x (int): The x-coordinate of the enemy's position. + :param y (int): The y-coordinate of the enemy's position. + """ + def __init__(self, maze): + self.maze = maze + self.x, self.y = self.reset_position() + + """ + Reset the position of the enemy to a valid starting position in the maze. + + :return: tuple: A tuple containing the x and y coordinates of the enemy's position. + """ + def reset_position(self): + while True: + num_rows = self.maze.num_rows() + num_cols = self.maze.num_columns() + + random_row = random.randint(0, num_rows - 1) + + start_col = num_cols - 2 + + self.x = start_col * TILE_SIZE + self.y = random_row * TILE_SIZE + + if self.maze[random_row][start_col] != 1: + return self.x, self.y + + """ + Draw the enemy on the screen. + + :param screen: The Pygame screen surface to draw on. + """ + def draw(self, screen): + pygame.draw.rect(screen, 'blue', (self.x, self.y, TILE_SIZE, TILE_SIZE)) -- GitLab