From 60b7f23ef12d59d048114cb5bdd98f5ad3ceb982 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Tue, 24 Mar 2020 12:19:28 +0100 Subject: [PATCH 1/7] Referat --- docs/team/referater/referat_24_03_2020.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/team/referater/referat_24_03_2020.md diff --git a/docs/team/referater/referat_24_03_2020.md b/docs/team/referater/referat_24_03_2020.md new file mode 100644 index 0000000..7d186ad --- /dev/null +++ b/docs/team/referater/referat_24_03_2020.md @@ -0,0 +1,11 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Oppmøte + +- Jobbe videre med oppgavene. + +## Møte +Forteller hva som er forventet å bli gjort iløp av dagen og setter i gang med arbeidet. \ No newline at end of file From 4cb6ebffc70b669397f0b91bbc1539ffb4c407de Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 12:24:25 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Legger=20til=20en=20uferdig=20metode=20for?= =?UTF-8?q?=20=C3=A5=20kj=C3=B8re=20en=20fase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/objects/RoboRallyGame.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index f19ce13..4ecfa81 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -169,6 +169,21 @@ public class RoboRallyGame implements IDrawableGame { makeMove(RobotID.ROBOT_7, Action.MOVE_1); } + /** + * Runs one phase as defined in the Robo Rally rulebook + * @param phaseNumber The number of the phase to run + * @throws InterruptedException If interrupted wile trying to sleep + */ + private void runPhase(int phaseNumber) throws InterruptedException { + //TODO: Run programming cards + + moveAllConveyorBelts(); + rotateCogwheels(); + + fireAllLasers(); + checkAllFlags(); + } + /** * Makes the given robot move according to to the action input. * @param robotID The ID of the robot to move. From c7e3eee5f8f4de235311f941f1ad2879c6ab71db Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Tue, 24 Mar 2020 14:02:03 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Lagt=20til=20funksjonalitet=20for=20=C3=A5?= =?UTF-8?q?=20kj=C3=B8re=20program=20i=20en=20fase.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roborally/objects/RoboRallyGame.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index f19ce13..8f79e81 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -8,8 +8,7 @@ import inf112.fiasko.roborally.element_properties.TileType; import inf112.fiasko.roborally.utility.BoardLoaderUtil; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.Predicate; @@ -21,6 +20,7 @@ public class RoboRallyGame implements IDrawableGame { private List> cogwheels; private List> conveyorBelts; private List> fastConveyorBelts; + private List playerList; public RoboRallyGame(boolean debug) { if (debug) { @@ -106,6 +106,14 @@ public class RoboRallyGame implements IDrawableGame { robots.add(new Robot(RobotID.ROBOT_6, new Position(7, 7))); robots.add(new Robot(RobotID.ROBOT_7, new Position(6, 7))); robots.add(new Robot(RobotID.ROBOT_8, new Position(6, 8))); + playerList.add(new Player(RobotID.ROBOT_1, "Player1")); + playerList.add(new Player(RobotID.ROBOT_2, "Player2")); + playerList.add(new Player(RobotID.ROBOT_3, "Player3")); + playerList.add(new Player(RobotID.ROBOT_4, "Player4")); + playerList.add(new Player(RobotID.ROBOT_5, "Player5")); + playerList.add(new Player(RobotID.ROBOT_6, "Player6")); + playerList.add(new Player(RobotID.ROBOT_7, "Player7")); + playerList.add(new Player(RobotID.ROBOT_8, "Player8")); gameBoard = BoardLoaderUtil.loadBoard("boards/Dizzy_Dash.txt", robots); cogwheels = gameBoard.getPositionsOfTileOnBoard(TileType.COGWHEEL_RIGHT, TileType.COGWHEEL_LEFT); @@ -382,4 +390,25 @@ public class RoboRallyGame implements IDrawableGame { sleep(); gameBoard.doLaserCleanup(); } + + private void runProgramCards(int phase) throws InterruptedException { + + List robotsToDoAction = new ArrayList<>(); + List programToBeRun = new ArrayList<>(); + List originalPriority = new ArrayList<>(); + for (Player player:playerList) { + List playerProgram = player.getProgram(); + if (!playerProgram.isEmpty()) { + originalPriority.add(playerProgram.get(phase).getPriority()); + robotsToDoAction.add(player.getRobotID()); + programToBeRun.add(playerProgram.get(phase)); + } + } + Collections.sort(programToBeRun); + for (ProgrammingCard card:programToBeRun) { + int i = originalPriority.indexOf(card.getPriority()); + RobotID robot = robotsToDoAction.get(i); + makeMove(robot, card.getAction()); + } + } } \ No newline at end of file From 6542a9860dc67355a764a4a20037bd324f15aba6 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 14:03:13 +0100 Subject: [PATCH 4/7] Legger til en klasse for generering av en enkel knapp --- .../roborally/game_wrapper/SimpleButton.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/game_wrapper/SimpleButton.java diff --git a/src/main/java/inf112/fiasko/roborally/game_wrapper/SimpleButton.java b/src/main/java/inf112/fiasko/roborally/game_wrapper/SimpleButton.java new file mode 100644 index 0000000..e697353 --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/game_wrapper/SimpleButton.java @@ -0,0 +1,37 @@ +package inf112.fiasko.roborally.game_wrapper; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; + +/** + * This class generates a simple text button using a default skin + */ +public class SimpleButton { + private TextButton button; + + /** + * Instantiates a new simple button + * @param text The text to display on the button + * @param font The font to use to draw button text + */ + public SimpleButton(String text, BitmapFont font) { + TextureAtlas buttonAtlas = new TextureAtlas(Gdx.files.internal("uiskin.atlas")); + Skin skin = new Skin(buttonAtlas); + TextButton.TextButtonStyle confirmCardsStyle = new TextButton.TextButtonStyle(); + confirmCardsStyle.font = font; + confirmCardsStyle.up = skin.getDrawable("default-round"); + confirmCardsStyle.down = skin.getDrawable("default-round-down"); + this.button = new TextButton(text, confirmCardsStyle); + } + + /** + * Gets the button generated + * @return A button + */ + public TextButton getButton() { + return this.button; + } +} From 57c0d3a3c1e96ed2b1065c2debdccfcb3a93c5f8 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 14:04:19 +0100 Subject: [PATCH 5/7] =?UTF-8?q?Fullf=C3=B8rer=20fase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 4ecfa81..d3e2db7 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -175,7 +175,7 @@ public class RoboRallyGame implements IDrawableGame { * @throws InterruptedException If interrupted wile trying to sleep */ private void runPhase(int phaseNumber) throws InterruptedException { - //TODO: Run programming cards + runProgramPhase(phaseNumber); moveAllConveyorBelts(); rotateCogwheels(); From 5ee301e8535c7b89954586a2044bab3cd354347e Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 14:05:39 +0100 Subject: [PATCH 6/7] =?UTF-8?q?Fikser=20navn=20p=C3=A5=20funkjson=20for=20?= =?UTF-8?q?=C3=A5=20kj=C3=B8re=20programmeringskort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 8885352..7cd219c 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -183,7 +183,7 @@ public class RoboRallyGame implements IDrawableGame { * @throws InterruptedException If interrupted wile trying to sleep */ private void runPhase(int phaseNumber) throws InterruptedException { - runProgramPhase(phaseNumber); + runProgramCards(phaseNumber); moveAllConveyorBelts(); rotateCogwheels(); From 403f4a85b987a5506ac4c39fca4124dd247857b5 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Tue, 24 Mar 2020 14:07:06 +0100 Subject: [PATCH 7/7] Fikser uinitialisert playerList --- src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 7cd219c..d2c05e2 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -106,6 +106,7 @@ public class RoboRallyGame implements IDrawableGame { robots.add(new Robot(RobotID.ROBOT_6, new Position(7, 7))); robots.add(new Robot(RobotID.ROBOT_7, new Position(6, 7))); robots.add(new Robot(RobotID.ROBOT_8, new Position(6, 8))); + playerList = new ArrayList<>(); playerList.add(new Player(RobotID.ROBOT_1, "Player1")); playerList.add(new Player(RobotID.ROBOT_2, "Player2")); playerList.add(new Player(RobotID.ROBOT_3, "Player3"));