From 2a495e01b8b90b7cf397aeeda98a027f428fea8a Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 20 Apr 2020 14:46:42 +0200 Subject: [PATCH 1/7] Legger til en klasse for testing av spillinteraksjon --- .../fiasko/roborally/objects/FakeGame.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/test/java/inf112/fiasko/roborally/objects/FakeGame.java diff --git a/src/test/java/inf112/fiasko/roborally/objects/FakeGame.java b/src/test/java/inf112/fiasko/roborally/objects/FakeGame.java new file mode 100644 index 0000000..7e525c6 --- /dev/null +++ b/src/test/java/inf112/fiasko/roborally/objects/FakeGame.java @@ -0,0 +1,66 @@ +package inf112.fiasko.roborally.objects; + +import inf112.fiasko.roborally.elementproperties.GameState; +import inf112.fiasko.roborally.networking.containers.PowerDownContainer; +import inf112.fiasko.roborally.networking.containers.ProgamsContainer; + +import java.util.List; + +public class FakeGame implements InteractableGame { + private String winningPlayerName; + + @Override + public GameState getGameState() { + return null; + } + + @Override + public void setGameState(GameState gameState) { + //Not needed for testing + } + + @Override + public String getWinningPlayerName() { + return winningPlayerName; + } + + @Override + public void receiveAllPrograms(ProgamsContainer programs) throws InterruptedException { + //Not needed for testing + } + + @Override + public void receiveStayInPowerDown(PowerDownContainer powerDowns) { + //Not needed for testing + } + + @Override + public ProgrammingCardDeck getPlayerHand() { + return null; + } + + @Override + public void setPlayerHand(ProgrammingCardDeck playerHand) { + //Not needed for testing + } + + @Override + public int getProgramSize() { + return 0; + } + + @Override + public List getProgram() { + return null; + } + + @Override + public void setProgram(List program) { + //Not needed for testing + } + + @Override + public void setWinningPlayerName(String winningPlayerName) { + this.winningPlayerName = winningPlayerName; + } +} From e3bf0273bf527a8ea75cc1fc3175670ee05f8ee2 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Mon, 20 Apr 2020 15:42:25 +0200 Subject: [PATCH 2/7] Laget 1x1 brett til test av vinnersenario Co-Authored-By: torlunjen --- src/test/resources/boards/win_test_board.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/test/resources/boards/win_test_board.txt diff --git a/src/test/resources/boards/win_test_board.txt b/src/test/resources/boards/win_test_board.txt new file mode 100644 index 0000000..4a5d0df --- /dev/null +++ b/src/test/resources/boards/win_test_board.txt @@ -0,0 +1,3 @@ +1 1 +17;1 +0 \ No newline at end of file From 075b3710cd345177e39fc450de8b3197e291459f Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Mon, 20 Apr 2020 15:42:53 +0200 Subject: [PATCH 3/7] Lager test for at rett vinner blir satt Co-Authored-By: torlunjen --- .../fiasko/roborally/objects/PhaseTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java index 63899e2..3e4c368 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java @@ -39,4 +39,22 @@ public class PhaseTest { phase.moveAllConveyorBelts(); assertEquals(RobotID.ROBOT_1, board.getRobotOnPosition(robot1Position)); } + + @Test + public void playerWinsAfterTouchingAllFlagsInCorrectOrder() { + FakeGame testGame = new FakeGame(); + List robot = new ArrayList<>(); + List player = new ArrayList<>(); + robot.add(new Robot(RobotID.ROBOT_1, new Position(0,0))); + player.add(new Player(RobotID.ROBOT_1, "Player 1")); + + try { + board = BoardLoaderUtil.loadBoard("boards/win_test_board.txt", robot); + Phase testPhase = new Phase(board, player, 0, testGame); + testPhase.checkAllFlags(); + assertEquals("Player 1", testGame.getWinningPlayerName()); + } catch (IOException e) { + e.printStackTrace(); + } + } } From d3a441911413ec851ec8212745ea534bf192993a Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 20 Apr 2020 16:53:43 +0200 Subject: [PATCH 4/7] Fikset bug med registrering av flagg. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flyttet hvor vi oppdaterer om en robot har vært på et flagg denne runden --- src/main/java/inf112/fiasko/roborally/objects/Board.java | 1 + src/main/java/inf112/fiasko/roborally/objects/Phase.java | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index d020a25..1b81fac 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -423,6 +423,7 @@ public class Board { int flagNr = flagID.getTileTypeID() % 16; if (flagNr - 1 == robot.getLastFlagVisited()) { robot.setLastFlagVisitedAndUpdateBackupPosition(flagNr); + setHasTouchedFlagThisTurnFromRobotID(robotID, true); } } diff --git a/src/main/java/inf112/fiasko/roborally/objects/Phase.java b/src/main/java/inf112/fiasko/roborally/objects/Phase.java index e111878..9d490b6 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Phase.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Phase.java @@ -73,7 +73,6 @@ public class Phase { continue; } gameBoard.updateFlagOnRobot(robotID, flag.getElement().getTileType()); - gameBoard.setHasTouchedFlagThisTurnFromRobotID(robotID, true); checkIfPlayerWon(robotID, flags.size()); } } From e103f0917be40935bedaa561bef1dee7d85adc60 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 20 Apr 2020 16:54:20 +0200 Subject: [PATCH 5/7] Typo og import --- src/test/java/inf112/fiasko/roborally/objects/BoardTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java index 9c21ec2..c2117cc 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java @@ -239,7 +239,7 @@ public class BoardTest { } @Test - public void flagDoesNotUpdatedOnRobotWithWringLastVisitedFlag() { + public void flagDoesNotUpdatedOnRobotWithWrongLastVisitedFlag() { Robot testRobot = robotList.get(6); assertEquals(0, testRobot.getLastFlagVisited()); board.updateFlagOnRobot(RobotID.ROBOT_7, TileType.FLAG_2); From 84b5a7c7de6ab27be9d4fcb680afa0df3e3ceb5a Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 20 Apr 2020 16:56:30 +0200 Subject: [PATCH 6/7] =?UTF-8?q?Laget=20noen=20av=20de=20n=C3=B8dvendige=20?= =?UTF-8?q?testene=20for=20faser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/objects/PhaseTest.java | 116 ++++++++++++++++-- 1 file changed, 108 insertions(+), 8 deletions(-) diff --git a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java index 63899e2..ce35c57 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/PhaseTest.java @@ -1,5 +1,6 @@ package inf112.fiasko.roborally.objects; +import inf112.fiasko.roborally.elementproperties.Action; import inf112.fiasko.roborally.elementproperties.Position; import inf112.fiasko.roborally.elementproperties.RobotID; import inf112.fiasko.roborally.utility.BoardLoaderUtil; @@ -10,22 +11,48 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.*; public class PhaseTest { private Phase phase; private Board board; - private Position robot1Position; + private Position robot1Position = new Position(2, 2); + private Position robot2Position = new Position(3, 2); + private Position robot3Position = new Position(7 , 2); + private Position robot4Position = new Position(3 , 8); + private Position robot5Position = new Position(2 , 14); + private Position robot6Position = new Position(2 , 15); + private Robot robot1 = new Robot(RobotID.ROBOT_1, robot1Position); + private Robot robot2 = new Robot(RobotID.ROBOT_2, robot2Position); + private Robot robot3 = new Robot(RobotID.ROBOT_3, robot3Position); + private Robot robot4 = new Robot(RobotID.ROBOT_4, robot4Position); + private Robot robot5 = new Robot(RobotID.ROBOT_5, robot5Position); + private Robot robot6 = new Robot(RobotID.ROBOT_6, robot6Position); + private Player player1 = new Player(RobotID.ROBOT_1, "Player 1"); + private Player player2 = new Player(RobotID.ROBOT_2, "Player 2"); + private Player player3 = new Player(RobotID.ROBOT_3, "Player 3"); + private Player player4 = new Player(RobotID.ROBOT_4, "Player 4"); + private Player player5 = new Player(RobotID.ROBOT_5, "Player 5"); + private Player player6 = new Player(RobotID.ROBOT_6, "Player 6"); + + List robots = new ArrayList<>(); @Before public void setUp() { - List robots = new ArrayList<>(); - robot1Position = new Position(2, 2); - robots.add(new Robot(RobotID.ROBOT_1, robot1Position)); - robots.add(new Robot(RobotID.ROBOT_2, new Position(3, 2))); + robots.add(robot1); + robots.add(robot2); + robots.add(robot3); + robots.add(robot4); + robots.add(robot5); + robots.add(robot6); + List playerList = new ArrayList<>(); - playerList.add(new Player(RobotID.ROBOT_1, "Player 1")); - playerList.add(new Player(RobotID.ROBOT_2, "Player 2")); + playerList.add(player1); + playerList.add(player2); + playerList.add(player3); + playerList.add(player4); + playerList.add(player5); + playerList.add(player6); try { board = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); this.phase = new Phase(board, playerList, 0, null); @@ -39,4 +66,77 @@ public class PhaseTest { phase.moveAllConveyorBelts(); assertEquals(RobotID.ROBOT_1, board.getRobotOnPosition(robot1Position)); } + + @Test + public void robotRegistersFlagWhenOnCorrectOne() { + assertEquals(robot3.getLastFlagVisited(), 0); + assertFalse(robot3.hasTouchedFlagThisTurn()); + phase.checkAllFlags(); + assertEquals(robot3.getLastFlagVisited(), 1); + assertTrue(robot3.hasTouchedFlagThisTurn()); + } + + @Test + public void robotDoesNotRegistersWrongFlag() { + assertEquals(robot4.getLastFlagVisited(), 0); + assertFalse(robot4.hasTouchedFlagThisTurn()); + phase.checkAllFlags(); + assertEquals(robot4.getLastFlagVisited(), 0); + assertFalse(robot4.hasTouchedFlagThisTurn()); + } + + @Test + public void actionDoesPerformAnAction() throws InterruptedException { + assertEquals(robot4.getRobotId(), board.getRobotOnPosition(robot4Position)); + phase.makeMove(RobotID.ROBOT_4, Action.MOVE_1); + assertEquals(robot4.getRobotId(),board.getRobotOnPosition(new Position(3, 7))); + } + + @Test + public void programmingCardsGetsPlayedInOrder() throws InterruptedException { + List testProgram1 = new ArrayList<>(); + List testProgram2 = new ArrayList<>(); + List testProgram3 = new ArrayList<>(); + ProgrammingCard card1 = new ProgrammingCard(1, Action.MOVE_1); + ProgrammingCard card2 = new ProgrammingCard(2, Action.ROTATE_RIGHT); + ProgrammingCard card3 = new ProgrammingCard(3, Action.MOVE_1); + ProgrammingCard card4 = new ProgrammingCard(4, Action.MOVE_1); + ProgrammingCard card5 = new ProgrammingCard(5, Action.MOVE_1); + ProgrammingCard card6 = new ProgrammingCard(10, Action.MOVE_1); + ProgrammingCard card7 = new ProgrammingCard(11, Action.ROTATE_RIGHT); + ProgrammingCard card8 = new ProgrammingCard(12, Action.MOVE_1); + ProgrammingCard card9 = new ProgrammingCard(13, Action.MOVE_1); + ProgrammingCard card10 = new ProgrammingCard(14, Action.MOVE_1); + ProgrammingCard card11 = new ProgrammingCard(100, Action.ROTATE_LEFT); + ProgrammingCard card12= new ProgrammingCard(200, Action.ROTATE_LEFT); + ProgrammingCard card13 = new ProgrammingCard(300, Action.ROTATE_LEFT); + ProgrammingCard card14 = new ProgrammingCard(400, Action.ROTATE_LEFT); + ProgrammingCard card15 = new ProgrammingCard(500, Action.ROTATE_LEFT); + testProgram1.add(card1); + testProgram1.add(card2); + testProgram1.add(card3); + testProgram1.add(card4); + testProgram1.add(card5); + testProgram2.add(card6); + testProgram2.add(card7); + testProgram2.add(card8); + testProgram2.add(card9); + testProgram2.add(card10); + testProgram3.add(card11); + testProgram3.add(card12); + testProgram3.add(card13); + testProgram3.add(card14); + testProgram3.add(card15); + player1.setProgram(testProgram3); + player2.setProgram(testProgram3); + player3.setProgram(testProgram3); + player4.setProgram(testProgram3); + player5.setProgram(testProgram1); + player6.setProgram(testProgram2); + assertEquals(robot5.getRobotId(), board.getRobotOnPosition(robot5Position)); + assertEquals(robot6.getRobotId(), board.getRobotOnPosition(robot6Position)); + phase.runProgrammingCards(1); + assertEquals(robot5.getRobotId(), board.getRobotOnPosition(new Position(2, 12))); + assertEquals(robot6.getRobotId(), board.getRobotOnPosition(new Position(2, 14))); + } } From 8b6b2f1d9b23c57fb7ad96ad25a5e21e03fd43c2 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Mon, 20 Apr 2020 17:03:16 +0200 Subject: [PATCH 7/7] Referat --- docs/team/referater/referat_20_04_2020.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 docs/team/referater/referat_20_04_2020.md diff --git a/docs/team/referater/referat_20_04_2020.md b/docs/team/referater/referat_20_04_2020.md new file mode 100644 index 0000000..0b6182b --- /dev/null +++ b/docs/team/referater/referat_20_04_2020.md @@ -0,0 +1,10 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Fortsette arbeidet med MVP + +## Møte +Vi starter med å diskutere noen bugs som vi har funnet, og hvordan vi skal håndtere dem. +Går deretter videre til å jobbe i grupper med å reparere disse bugsene samt fortsette på MVP. \ No newline at end of file