From c8f7dbbb87990c2247dd1508f6b9dda887e25904 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Thu, 27 Feb 2020 10:38:26 +0100 Subject: [PATCH] Rydder opp i brettet og testene Overskriver toString metoden i Position for lettere debugging Fjener removeDeadRobotsFromBoard siden den ikke ble brukt rett Flytter repeterende elementer til variabler --- .../element_properties/Position.java | 5 ++ .../fiasko/roborally/objects/Board.java | 11 +-- .../fiasko/roborally/objects/BoardTest.java | 70 +++++++++++-------- 3 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/element_properties/Position.java b/src/main/java/inf112/fiasko/roborally/element_properties/Position.java index 5923b8a..797df36 100644 --- a/src/main/java/inf112/fiasko/roborally/element_properties/Position.java +++ b/src/main/java/inf112/fiasko/roborally/element_properties/Position.java @@ -34,6 +34,11 @@ public class Position { return yCoordinate; } + @Override + public String toString() { + return String.format("X: %d, Y: %d", xCoordinate, yCoordinate); + } + @Override public boolean equals(Object obj) { if (obj.getClass() != Position.class) { diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index 5cc7369..c25694c 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -85,14 +85,6 @@ public class Board { return getAllElementsFromGrid(walls); } - /** - * Removes a dead robot from the board over to the dead robot list - * @param robot the dead robot - */ - public void removeDeadRobotFromBoard(Robot robot) { - robots.remove(robot.getRobotId()); - } - /** * Rotates a robot to the right * @param robotID The id of the robot to rotate @@ -208,7 +200,7 @@ public class Board { */ private void killRobot(Robot robot) { robot.setAmountOfLives(robot.getAmountOfLives() - 1); - removeDeadRobotFromBoard(robot); + robots.remove(robot.getRobotId()); deadRobots.add(robot); } @@ -304,7 +296,6 @@ public class Board { robot.setFacingDirection(Direction.NORTH); robots.put(robot.getRobotId(), robot); } - else {deadRobots.remove(robot); } } deadRobots = new ArrayList<>(); } diff --git a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java index 8feceda..d80bd61 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java @@ -6,6 +6,7 @@ import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.element_properties.TileType; import inf112.fiasko.roborally.element_properties.WallType; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import java.util.ArrayList; @@ -19,25 +20,35 @@ import static org.junit.Assert.assertTrue; public class BoardTest { private Grid tileGrid; private Grid wallGrid; - private Position someValidPosition1; - private Position someValidPosition5; - private Position someValidPosition6; - private Position someValidPosition7; + private static Position zeroPosition; + private static Position someValidPosition1; + private static Position someValidPosition2; + private static Position someValidPosition3; + private static Position someValidPosition4; + private static Position someValidPosition5; + private static Position someValidPosition6; + private static Position someValidPosition7; + private static Position someValidPosition8; private List robotList; private Board board; + @BeforeClass + public static void globalSetUp() { + zeroPosition = new Position(0, 0); + someValidPosition1 = new Position(2, 2); + someValidPosition2 = new Position(2, 1); + someValidPosition3 = new Position(2, 3); + someValidPosition4 = new Position(2, 4); + someValidPosition5 = new Position(3, 1); + someValidPosition6 = new Position(3, 2); + someValidPosition7 = new Position(3, 3); + someValidPosition8 = new Position(3, 4); + } + @Before public void setUp() { tileGrid = new Grid<>(5, 5, new Tile(TileType.TILE, Direction.NORTH)); wallGrid = new Grid<>(5, 5); - someValidPosition1 = new Position(2, 2); - Position someValidPosition2 = new Position(2, 1); - Position someValidPosition3 = new Position(2, 3); - Position someValidPosition4 = new Position(2, 4); - someValidPosition5 = new Position(3, 1); - someValidPosition6 = new Position(3, 2); - someValidPosition7 = new Position(3, 3); - Position someValidPosition8 = new Position(3, 4); robotList = new ArrayList<>(); robotList.add(new Robot(RobotID.ROBOT_1, someValidPosition1)); robotList.add(new Robot(RobotID.ROBOT_2, someValidPosition2)); @@ -84,28 +95,30 @@ public class BoardTest { @Test public void robotCanBeRotatedLeft() { - assertEquals(Direction.NORTH, robotList.get(0).getFacingDirection()); + Robot robot = robotList.get(0); + assertEquals(Direction.NORTH, robot.getFacingDirection()); board.rotateRobotLeft(RobotID.ROBOT_1); - assertEquals(Direction.WEST, robotList.get(0).getFacingDirection()); + assertEquals(Direction.WEST, robot.getFacingDirection()); board.rotateRobotLeft(RobotID.ROBOT_1); - assertEquals(Direction.SOUTH, robotList.get(0).getFacingDirection()); + assertEquals(Direction.SOUTH, robot.getFacingDirection()); board.rotateRobotLeft(RobotID.ROBOT_1); - assertEquals(Direction.EAST, robotList.get(0).getFacingDirection()); + assertEquals(Direction.EAST, robot.getFacingDirection()); board.rotateRobotLeft(RobotID.ROBOT_1); - assertEquals(Direction.NORTH, robotList.get(0).getFacingDirection()); + assertEquals(Direction.NORTH, robot.getFacingDirection()); } @Test public void robotCanBeRotatedRight() { - assertEquals(Direction.NORTH, robotList.get(0).getFacingDirection()); + Robot robot = robotList.get(0); + assertEquals(Direction.NORTH, robot.getFacingDirection()); board.rotateRobotRight(RobotID.ROBOT_1); - assertEquals(Direction.EAST, robotList.get(0).getFacingDirection()); + assertEquals(Direction.EAST, robot.getFacingDirection()); board.rotateRobotRight(RobotID.ROBOT_1); - assertEquals(Direction.SOUTH, robotList.get(0).getFacingDirection()); + assertEquals(Direction.SOUTH, robot.getFacingDirection()); board.rotateRobotRight(RobotID.ROBOT_1); - assertEquals(Direction.WEST, robotList.get(0).getFacingDirection()); + assertEquals(Direction.WEST, robot.getFacingDirection()); board.rotateRobotRight(RobotID.ROBOT_1); - assertEquals(Direction.NORTH, robotList.get(0).getFacingDirection()); + assertEquals(Direction.NORTH, robot.getFacingDirection()); } @Test (expected = IllegalArgumentException.class) @@ -123,9 +136,9 @@ public class BoardTest { @Test public void killRobotReducesAmountOfLivesByOne() { - Robot robot = board.getAliveRobots().get(1); + Robot robot = robotList.get(1); assertEquals(3, robot.getAmountOfLives()); - robot.setPosition(new Position(0, 0)); + robot.setPosition(zeroPosition); board.moveRobot(robot.getRobotId(), Direction.NORTH); assertEquals(2, robot.getAmountOfLives()); } @@ -133,19 +146,18 @@ public class BoardTest { @Test public void respawnRobotAtBackupPosition() { Robot robot = robotList.get(0); - robot.setPosition(new Position(0, 0)); + robot.setPosition(zeroPosition); board.moveRobot(robot.getRobotId(), Direction.NORTH); - board.removeDeadRobotFromBoard(robot); board.respawnRobots(); - assertEquals(robot.getBackupPosition(), someValidPosition1); + assertEquals(robot.getBackupPosition(), robot.getPosition()); } @Test public void respawnRobotDoesNotRespawnARobotWithNoLives() { - Robot robot = board.getAliveRobots().get(0); + Robot robot = robotList.get(0); + robot.setPosition(zeroPosition); robot.setAmountOfLives(1); board.moveRobot(robot.getRobotId(), Direction.NORTH); - board.removeDeadRobotFromBoard(robot); board.respawnRobots(); assertFalse(board.isRobotAlive(robot.getRobotId())); }