From 822ca33345b033a6f21daa3262d1e72854463a07 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Tue, 10 Mar 2020 16:02:34 +0100 Subject: [PATCH 1/2] Added A player class Started on the functions needed for a player. --- .../fiasko/roborally/objects/Player.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/inf112/fiasko/roborally/objects/Player.java diff --git a/src/main/java/inf112/fiasko/roborally/objects/Player.java b/src/main/java/inf112/fiasko/roborally/objects/Player.java new file mode 100644 index 0000000..7e28586 --- /dev/null +++ b/src/main/java/inf112/fiasko/roborally/objects/Player.java @@ -0,0 +1,58 @@ +package inf112.fiasko.roborally.objects; + +import inf112.fiasko.roborally.element_properties.RobotID; + +import java.util.ArrayList; +import java.util.List; + +public class Player { + private final RobotID robotID; + private final String name; + private boolean powerDownNextRound = false; + private ProgrammingCardDeck playerDeck; + private List program = new ArrayList(); + + // Constructor for the player class, it get assigned a Robot, a player nam and a deck + public Player(RobotID robotID, String name, ProgrammingCardDeck playerDeck) { + this.robotID = robotID; + this.name = name; + this.playerDeck = playerDeck; + } + + /** + * Gives you the RobotID of a player + * @return An RobotID + */ + public RobotID getRobotID(){return robotID;} + + public String getName() {return name;} + + public List getProgram() {return program;} + + public ProgrammingCardDeck getPlayerDeck() {return playerDeck;} + + public boolean getPowerDownNextRound() { return powerDownNextRound;} + + public void setPowerDownNextRound(boolean powerDownStatus) { this.powerDownNextRound = powerDownStatus;} + + public void setCardInProgram(ProgrammingCard card) { + for (int i = 0; i < 5; i++) { + if (program.size() == 0) { + program.add(i, card); + return; + } + if (program.get(i) == null) { + program.add(i, card); + return; + } + } + throw new IllegalArgumentException("Program deck is full,tried to add to many cards"); + } + + + public ProgrammingCard removeProgramCard(int cardNr) { + program.add(cardNr, null); + return program.remove(cardNr+1); + } + +} From e95ee32e6406e23444eb7592dcf606f9940ec20d Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Tue, 10 Mar 2020 16:03:07 +0100 Subject: [PATCH 2/2] Added tests for the playerclass. Started on the tests needed for a player. --- .../fiasko/roborally/objects/PlayerTest.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/java/inf112/fiasko/roborally/objects/PlayerTest.java diff --git a/src/test/java/inf112/fiasko/roborally/objects/PlayerTest.java b/src/test/java/inf112/fiasko/roborally/objects/PlayerTest.java new file mode 100644 index 0000000..5e4e00b --- /dev/null +++ b/src/test/java/inf112/fiasko/roborally/objects/PlayerTest.java @@ -0,0 +1,43 @@ +package inf112.fiasko.roborally.objects; + +import inf112.fiasko.roborally.element_properties.Action; +import inf112.fiasko.roborally.element_properties.RobotID; +import org.junit.Before; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import java.util.ArrayList; +import java.util.List; + + +public class PlayerTest { + private Player playerTest; + @Before + public void setUp() { + List cards = new ArrayList(); + cards.add(new ProgrammingCard(10, Action.MOVE_1)); + cards.add(new ProgrammingCard(20, Action.MOVE_2)); + cards.add(new ProgrammingCard(30, Action.MOVE_3)); + cards.add(new ProgrammingCard(40, Action.BACK_UP)); + cards.add(new ProgrammingCard(50, Action.ROTATE_LEFT)); + ProgrammingCardDeck playerDeck = new ProgrammingCardDeck(cards); + playerTest = new Player(RobotID.ROBOT_1, "TestPlayer" ,playerDeck); + } + + @Test + public void setPowerDownStatusToTrue() { + playerTest.setPowerDownNextRound(true); + assertEquals(true, playerTest.getPowerDownNextRound()); + } + + @Test + public void setPowerDownStatusToFalse() { + playerTest.setPowerDownNextRound(false); + assertEquals(false, playerTest.getPowerDownNextRound()); + } + + @Test + public void cardGetsInsertedIntoProgram() { + playerTest.setCardInProgram(new ProgrammingCard(10,Action.MOVE_1)); + assertEquals(Action.MOVE_1,playerTest.getProgram().get(0).getAction()); + } +}