From 61c3a9ced64def88936b6f18a00b092d4fb1c021 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Wed, 26 Feb 2020 20:20:46 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Endret=20p=C3=A5=20Board=20slik=20at=20resp?= =?UTF-8?q?awns=20fungerer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lagt metode for respawn og for å sjekke om noe er i live. Lagt til liste for å ta vare på døde roboter. --- .../fiasko/roborally/objects/Board.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index 98ed040..775af3a 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -19,6 +19,7 @@ public class Board { private IGrid walls; private IGrid tiles; private Map robots; + private List deadRobots; /** * Initializes the board @@ -41,6 +42,7 @@ public class Board { this.boardHeight = tiles.getHeight(); this.walls = walls; this.tiles = tiles; + this.deadRobots = new ArrayList<>(); } /** @@ -207,6 +209,7 @@ public class Board { private void killRobot(Robot robot) { robot.setAmountOfLives(robot.getAmountOfLives() - 1); removeDeadRobotFromBoard(robot); + deadRobots.add(robot); } /** @@ -289,4 +292,28 @@ public class Board { } return elements; } + + /** + * Moves all dead robots to their backups and makes them part of the board again, and if a robot has no lives + * it will be removed from the game. + */ + public void respawnRobots() { + for (Robot robot : deadRobots) { + if (robot.getAmountOfLives() > 0) { + robot.setPosition(robot.getBackupPosition()); + robot.setFacingDirection(Direction.NORTH); + robots.put(robot.getRobotId(), robot); + } + else { + deadRobots.remove(robot); + } + } + } + + /** + * Checks if a specific robot is currently alive on the board + * @param robot the ID of the robot you want to check + * @return True/False based on if the robot was found. + */ + public boolean isRobotAlive(RobotID robot) { return robots.containsKey(robot); } } From 07b427be20dfcb3ae5659d0d00fabe2381b51731 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Wed, 26 Feb 2020 20:22:19 +0100 Subject: [PATCH 2/3] Laget tester for for respawn metoden. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tester at robot ikke kan spawne uten liv, og at de spawner på rett plass. --- .../fiasko/roborally/objects/BoardTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java index b95c514..f135563 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java @@ -129,4 +129,23 @@ public class BoardTest { board.moveRobot(robot.getRobotId(), Direction.NORTH); assertEquals(2, robot.getAmountOfLives()); } + + @Test + public void respawnRobotAtBackupPosition() { + Robot robot = board.getAliveRobots().get(0); + board.moveRobot(robot.getRobotId(), Direction.NORTH); + board.removeDeadRobotFromBoard(robot); + board.respawnRobots(); + assertEquals(robot.getBackupPosition(), someValidPosition1); + } + + @Test + public void respawnRobotDoesNotRespawnARobotWithNoLives() { + Robot robot = board.getAliveRobots().get(0); + robot.setAmountOfLives(1); + board.moveRobot(robot.getRobotId(), Direction.NORTH); + board.removeDeadRobotFromBoard(robot); + board.respawnRobots(); + assertFalse(board.isRobotAlive(robot.getRobotId())); + } } From 02087fa8418b9ff7cea1e3ce682e0eda68f5c48e Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Wed, 26 Feb 2020 20:26:49 +0100 Subject: [PATCH 3/3] Lagd referat for 26/02/2020 --- docs/team/referater/referat_26_02_2020.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/team/referater/referat_26_02_2020.md diff --git a/docs/team/referater/referat_26_02_2020.md b/docs/team/referater/referat_26_02_2020.md new file mode 100644 index 0000000..1bea833 --- /dev/null +++ b/docs/team/referater/referat_26_02_2020.md @@ -0,0 +1,13 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Jobbe videre på deloppgaver i oblig2. +- Lage akseptansekrav og arbeidsoppgaver for brukerhistorier. + +## Møte +Vi har laget akseptansekrav og arbeidsoppgaver som passer med brukerhistoriene. +Refaktorerte formatering fra klassevis til kravvis, der kravet kommer først, så alle brukerhistorier og akseptansekrav til det kravet. +Diskutert hva rollene i gruppen har innebært for de forskjellige medlemmene. +Diskutert hva som kan forbedres til neste sprint - fordeling av commits, effektivisering av brukerhistorier. \ No newline at end of file