From bf4390ccea0a4a1e07c4446e65f8e46f2c2cda8c Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 15:26:20 +0100 Subject: [PATCH] =?UTF-8?q?Endrer=20runGameLoop=20til=20=C3=A5=20kj=C3=B8r?= =?UTF-8?q?e=205=20tilfeldige=20faser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/objects/RoboRallyGame.java | 54 ++++++++----------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index d2c05e2..ce6e9a6 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -6,6 +6,7 @@ import inf112.fiasko.roborally.element_properties.Position; import inf112.fiasko.roborally.element_properties.RobotID; import inf112.fiasko.roborally.element_properties.TileType; import inf112.fiasko.roborally.utility.BoardLoaderUtil; +import inf112.fiasko.roborally.utility.DeckLoaderUtil; import java.io.IOException; import java.util.*; @@ -115,6 +116,17 @@ public class RoboRallyGame implements IDrawableGame { playerList.add(new Player(RobotID.ROBOT_6, "Player6")); playerList.add(new Player(RobotID.ROBOT_7, "Player7")); playerList.add(new Player(RobotID.ROBOT_8, "Player8")); + Deck cards = DeckLoaderUtil.loadProgrammingCardsDeck(); + for (Player player : playerList) { + cards.shuffle(); + List testProgram = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + cards.shuffle(); + testProgram.add(cards.peekTop()); + } + player.setInProgram(testProgram); + } + gameBoard = BoardLoaderUtil.loadBoard("boards/Dizzy_Dash.txt", robots); cogwheels = gameBoard.getPositionsOfTileOnBoard(TileType.COGWHEEL_RIGHT, TileType.COGWHEEL_LEFT); @@ -149,33 +161,11 @@ public class RoboRallyGame implements IDrawableGame { */ private void runGameLoop() throws InterruptedException { TimeUnit.SECONDS.sleep(3); - makeMove(RobotID.ROBOT_1, Action.MOVE_1); - makeMove(RobotID.ROBOT_1, Action.MOVE_2); - fireAllLasers(); - makeMove(RobotID.ROBOT_1, Action.BACK_UP); - makeMove(RobotID.ROBOT_1, Action.BACK_UP); - makeMove(RobotID.ROBOT_1, Action.MOVE_3); - makeMove(RobotID.ROBOT_1, Action.ROTATE_LEFT); - makeMove(RobotID.ROBOT_1, Action.U_TURN); - makeMove(RobotID.ROBOT_1, Action.ROTATE_RIGHT); - makeMove(RobotID.ROBOT_2, Action.ROTATE_LEFT); - makeMove(RobotID.ROBOT_2, Action.MOVE_3); - makeMove(RobotID.ROBOT_2, Action.MOVE_3); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.U_TURN); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.MOVE_3); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.BACK_UP); - makeMove(RobotID.ROBOT_2, Action.ROTATE_LEFT); - makeMove(RobotID.ROBOT_2, Action.U_TURN); - makeMove(RobotID.ROBOT_2, Action.MOVE_1); - moveAllConveyorBelts(); - checkAllFlags(); - rotateCogwheels(); - makeMove(RobotID.ROBOT_7, Action.MOVE_1); + runPhase(1); + runPhase(2); + runPhase(3); + runPhase(4); + runPhase(5); } /** @@ -408,20 +398,20 @@ public class RoboRallyGame implements IDrawableGame { } private void runProgramCards(int phase) throws InterruptedException { - List robotsToDoAction = new ArrayList<>(); List programToBeRun = new ArrayList<>(); List originalPriority = new ArrayList<>(); - for (Player player:playerList) { + for (Player player : playerList) { List playerProgram = player.getProgram(); if (!playerProgram.isEmpty()) { - originalPriority.add(playerProgram.get(phase).getPriority()); + ProgrammingCard programmingCard = playerProgram.get(phase); + originalPriority.add(programmingCard.getPriority()); robotsToDoAction.add(player.getRobotID()); - programToBeRun.add(playerProgram.get(phase)); + programToBeRun.add(programmingCard); } } Collections.sort(programToBeRun); - for (ProgrammingCard card:programToBeRun) { + for (ProgrammingCard card : programToBeRun) { int i = originalPriority.indexOf(card.getPriority()); RobotID robot = robotsToDoAction.get(i); makeMove(robot, card.getAction());