Browse Source

Rewrite checkdice with new tests

develop
FelixKrull 3 years ago
parent
commit
2c498e42ee
  1. 25
      src/main/java/Game.java
  2. 16
      src/test/java/GameTest.java

25
src/main/java/Game.java

@ -29,7 +29,7 @@ public class Game {
} while(figId == -1);
g.setFigure(figId, dice, p, g);
}
} while (g.checkDice(dice, p, c));
} while (g.checkDice(dice, p, c, g));
if(p.checkGameWin(p.figures)) {
winner = p;
System.out.println("Spieler " + winner.name + " gewinnt!");
@ -63,18 +63,21 @@ public class Game {
* @param dice Value of dice got from rolldice()
* @param p active Player
* @param countRolls Counter how often the Player already rolled the dice
* @param g game instance
* @return true if Player can roll the dice another time
*/
public boolean checkDice(int dice, Player p, int countRolls) {
boolean figuresOnBoard = false;
for(Figure f : p.figures) {
if (f.getPosition() > -1 && f.getPosition() < 40) {
figuresOnBoard = true;
break;
}
}
if(!figuresOnBoard) {
return countRolls < 3;
public boolean checkDice(int dice, Player p, int countRolls, Game g) {
int figuresInBase = p.checkFigureInBase(p.figures);
if(countRolls >= 3) return false;
if(figuresInBase == 4) {
return true;
} else if (figuresInBase < 4) {
for(int i = 0; i < 4 - figuresInBase; i++) {
if(checkFieldClear(p.startHome+3-i,p,g) == 0) {
return dice == 6;
}
}
return true;
} else return dice == 6;
}

16
src/test/java/GameTest.java

@ -37,7 +37,7 @@ public class GameTest {
while(it.hasNext()) {
it.next().setPosition(it2.next());
}
boolean calculatedResult = g.checkDice(dice, p1, c);
boolean calculatedResult = g.checkDice(dice, p1, c, g);
assertThat(calculatedResult).describedAs(testname).isEqualTo(expectedResult);
}
@ -59,7 +59,7 @@ public class GameTest {
Arrays.asList(-1, -1, -1, -1),
1,
3,
true
false
),
Arguments.of("No figures on Field - d: 1 - c: 4",
Arrays.asList(-1, -1, -1, -1),
@ -78,6 +78,18 @@ public class GameTest {
6,
1,
true
),
Arguments.of("Figures on Field - d: 6 - c: 1",
Arrays.asList(42, -1, -1, -1),
5,
1,
false
),
Arguments.of("Figures on Field - d: 6 - c: 1",
Arrays.asList(42, 43, -1, -1),
5,
1,
true
)
);
}

Loading…
Cancel
Save