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