From 6ad2ce504f8293becefa86ac04b37ca8aedcd74c Mon Sep 17 00:00:00 2001
From: Celyn Walters <celyn.walters@surrey.ac.uk>
Date: Wed, 22 Mar 2023 23:49:04 +0000
Subject: [PATCH] Randomise spawn locations

---
 rl/environments/mypacman.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/rl/environments/mypacman.py b/rl/environments/mypacman.py
index a2d5772..5fc58ef 100644
--- a/rl/environments/mypacman.py
+++ b/rl/environments/mypacman.py
@@ -881,9 +881,11 @@ class GameController:
 			binary_row = []
 			for x, column in enumerate(row):
 				if column == "G":
-					self.ghost_spawns.append((x + 0.5, y))
+					# self.ghost_spawns.append((x + 0.5, y))
+					pass
 				elif column == "P":
-					self.pacman_spawn = (x + 0.5, y)
+					# self.pacman_spawn = (x + 0.5, y)
+					pass
 				elif column == "•":
 					self.cookie_spaces.append((x, y))
 				elif column == "O":
@@ -895,6 +897,12 @@ class GameController:
 					self.reachable_spaces.append((x, y))
 			maze.append(binary_row)
 
+		# Randomise starting positions
+		spawns = np.random.choice(range(len(self.reachable_spaces)), size=5, replace=False).tolist()
+		self.pacman_spawn = self.reachable_spaces[spawns.pop()]
+		for _ in range(4):
+			self.ghost_spawns.append(self.reachable_spaces[spawns.pop()])
+
 		return np.array(maze)
 
 
-- 
GitLab