diff --git a/src/main/java/pacmanGame/GameManager.java b/src/main/java/pacmanGame/GameManager.java index 236dd2c..21ea44a 100644 --- a/src/main/java/pacmanGame/GameManager.java +++ b/src/main/java/pacmanGame/GameManager.java @@ -15,18 +15,15 @@ public class GameManager { } public void setupGame(){ - map = new Map(Map.mapClassic,this); - visualizer = new VisualizerPlainText(this); - player = new Player(this); - player.Spawn(); - ghosts = new Ghost[4]; - for(int i = 0; i < ghosts.length; i++) { - ghosts[i] = new Ghost(this); - } - isPaused = false; - - } - + map = new Map(Map.mapClassic, this); + visualizer = new VisualizerPlainText(this); + player = new Player(this); + player.Spawn(); + ghosts = new Ghost[4]; + for (int i = 0; i < ghosts.length; i++) { + ghosts[i] = new Ghost(this, i); + } + } public void Update() { visualizer.Update(); if(time%5 == 0) { diff --git a/src/main/java/pacmanGame/Ghost.java b/src/main/java/pacmanGame/Ghost.java index dc8a7d9..26e9845 100644 --- a/src/main/java/pacmanGame/Ghost.java +++ b/src/main/java/pacmanGame/Ghost.java @@ -1,12 +1,22 @@ package pacmanGame; public class Ghost { - public Vector2 position; - public final GameManager gameManager; - - public Ghost(GameManager gameManager) { - this.gameManager = gameManager; - this.position = new Vector2(-1, -1); - } - + public Vector2 position; + public final GameManager gameManager; + public final int ghostNumber; + + + public Ghost(GameManager gameManager, int ghostNumber) { + this.gameManager = gameManager; + this.ghostNumber = ghostNumber; + this.position = new Vector2(-1, -1); + } + + public void setPosition(Vector2 newPosition) { + this.position = newPosition; + } + + public void move(Vector2 direction) { + this.position = this.position.Add(direction); + } } diff --git a/src/main/java/pacmanGame/Map.java b/src/main/java/pacmanGame/Map.java index 40ab6aa..b018895 100644 --- a/src/main/java/pacmanGame/Map.java +++ b/src/main/java/pacmanGame/Map.java @@ -21,8 +21,8 @@ public class Map { "wwwwwww.wweeeeeeeeeeww.wwwwwww", "wwwwwww.wwewwwwwwwweww.wwwwwww", "wwwwwww.wweweeeeeeweww.wwwwwww", - "eeeeeee.eeeweeeeeeweee.eeeeeee", - "wwwwwww.wweweeeeeeweww.wwwwwww", + "eeeeeee.eeewe0ee2eweee.eeeeeee", + "wwwwwww.wwewe1ee3eweww.wwwwwww", "wwwwwww.wweweeeeeeweww.wwwwwww", "wwwwwww.wwewwwwwwwweww.wwwwwww", "wwwwwww.wweeeeeeeeeeww.wwwwwww", @@ -40,13 +40,22 @@ public class Map { "wwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwww" }; + + public Vector2[] ghostSpawns; + public String ghostSpawnChars = "0123456789"; + public final HashMap mapTypes = new HashMap(){{ this.put("e", "empty"); this.put("s", "empty"); this.put(".", "dot"); this.put("w", "wall"); + + for(int i = 0; i < 10; i++) { + this.put(i+"", "empty"); + } }}; + public Cell[][] cells; public Vector2 size; @@ -78,6 +87,8 @@ public class Map { cells[x][y] = new Cell(cellPos, cellType, this); + //for(int i = 0; i < gameManager.ghosts.length; i++) + if(cellChar == playerSpawnChar) { playerSpawn = cellPos.Clone(); } @@ -96,4 +107,25 @@ public class Map { } } + private void initializeGhostSpawns() { + int count = 0; + for (int y = 0; y < mapClassic.length; y++) { + for (int x = 0; x < mapClassic[y].length(); x++) { + char cellChar = mapClassic[y].charAt(x); + if (ghostSpawnChars.indexOf(cellChar) != -1) { + count++; + } + } + } + ghostSpawns = new Vector2[count]; + count = 0; + for (int y = 0; y < mapClassic.length; y++) { + for (int x = 0; x < mapClassic[y].length(); x++) { + char cellChar = mapClassic[y].charAt(x); + if (ghostSpawnChars.indexOf(cellChar) != -1) { + ghostSpawns[count++] = new Vector2(x, mapClassic.length - 1 - y); + } + } + } + } } diff --git a/src/test/java/pacmanTests/MapTest.java b/src/test/java/pacmanTests/MapTest.java index f94d0bd..7fc442d 100644 --- a/src/test/java/pacmanTests/MapTest.java +++ b/src/test/java/pacmanTests/MapTest.java @@ -21,14 +21,13 @@ class MapTest { String expectedTopLeft = "wall"; String expectedMiddle = "dot"; String expectedBottomRight = "dot"; - // act GameManager gameManager = new GameManager(); + // act gameManager.map = new Map(mapTest, gameManager); - Map testMap = gameManager.map; - - String topLeft = testMap.cells[0][2].type; - String middle = testMap.cells[1][1].type; - String bottomRight = testMap.cells[2][0].type; + + String topLeft = gameManager.map.cells[0][2].type; + String middle = gameManager.map.cells[1][1].type; + String bottomRight = gameManager.map.cells[2][0].type; // assert assertThat(expectedTopLeft).isEqualTo(topLeft); assertThat(expectedMiddle).isEqualTo(middle); @@ -45,7 +44,7 @@ class MapTest { }; GameManager gameManager = new GameManager(); gameManager.map = new Map(mapTest, gameManager); - Map testMap = gameManager.map; + Map testMap = gameManager.map; Cell expectedTopLeft = testMap.cells[0][2]; Cell expectedMiddle = testMap.cells[1][1]; Cell expectedBottomRight = testMap.cells[2][0];