From a6c3fef1c21445b89ef965496012c40f7ab60605 Mon Sep 17 00:00:00 2001 From: FelixKrull Date: Tue, 1 Feb 2022 10:48:24 +0100 Subject: [PATCH] Refactoring checkDice method --- src/main/java/Game.java | 41 +++++++++++++---------------- src/test/java/GameTest.java | 51 ++++++++++++++++++++----------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index 2f2d509..ba7a903 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -1,4 +1,5 @@ import java.util.ArrayList; +import java.util.Iterator; public class Game { @@ -7,10 +8,20 @@ public class Game { public static void main(String[] args) { Game g = new Game(); - /*while (checkDice() != 0) { - int dice = g.players[0].rollDice(); - System.out.println("Würfel: " + dice); - }*/ + while(true){ + for (Player p : g.players) { + int c = 0; + int dice; + + do { + dice = p.rollDice(); + c++; + } while (g.checkDice(dice, p, c)); + + + p.checkGameWin(p.figures); + } + } } public Game() { @@ -23,26 +34,10 @@ public class Game { players.add(new Player("Grün", 52, 55)); } - public int checkDice(int dice, Player p) { + public boolean checkDice(int dice, Player p, int countRolls) { int figuresInBase = p.checkFigureInBase(p.figures); if(figuresInBase == 4) { - if(dice == 6) { - return 1; - } else { - return 0; - } - } else if(figuresInBase > 0) { - if(dice == 6) { - return 3; - } else { - return 2; - } - } else { - if(dice == 6) { - return 5; - } else { - return 4; - } - } + return countRolls <= 3; + } else return dice == 6; } } diff --git a/src/test/java/GameTest.java b/src/test/java/GameTest.java index bd357c6..036b7db 100644 --- a/src/test/java/GameTest.java +++ b/src/test/java/GameTest.java @@ -22,55 +22,60 @@ public class GameTest { @ParameterizedTest @MethodSource("checkDiceTestData") - void checkDiceTest(String testname, Player testPlayer, Collection positions, int dice, int expectedResult) { + void checkDiceTest(String testname, Player testPlayer, Collection positions, int dice, int c, boolean expectedResult) { Iterator
it = testPlayer.figures.iterator(); Iterator it2 = positions.iterator(); while(it.hasNext()) { it.next().setPosition(it2.next()); } - int calculatedResult = g.checkDice(dice, testPlayer); + boolean calculatedResult = g.checkDice(dice, testPlayer, c); assertThat(calculatedResult).describedAs(testname).isEqualTo(expectedResult); } static Stream checkDiceTestData () { return Stream.of( - Arguments.of("No figures on Field - not a 6", + Arguments.of("No figures on Field - d: 1 - c: 1", new Player("Rot", 40, 43), Arrays.asList(-1, -1, -1, -1), 1, - 0 + 1, + true ), - Arguments.of("No figures on Field - a 6", + Arguments.of("No figures on Field - d: 1 - c: 2", new Player("Rot", 40, 43), Arrays.asList(-1, -1, -1, -1), - 6, - 1 + 1, + 2, + true ), - Arguments.of("Few Figures in Field - not a 6", + Arguments.of("No figures on Field - d: 1 - c: 3", new Player("Rot", 40, 43), - Arrays.asList(25, -1, 13, -1), - 2, - 2 + Arrays.asList(-1, -1, -1, -1), + 1, + 3, + true ), - Arguments.of("Few Figures in Field - a 6", + Arguments.of("No figures on Field - d: 1 - c: 4", new Player("Rot", 40, 43), - Arrays.asList(25, -1, 13, -1), - 6, - 3 + Arrays.asList(-1, -1, -1, -1), + 1, + 4, + false ), - Arguments.of("All Figures in Field - not a 6", + Arguments.of("Figures on Field - d: 1 - c: 1", new Player("Rot", 40, 43), - Arrays.asList(2, 10, 15, 21), - 3, - 4 + Arrays.asList(10, -1, 2, -1), + 1, + 1, + false ), - Arguments.of("All Figures in Field - a 6", + Arguments.of("Figures on Field - d: 6 - c: 1", new Player("Rot", 40, 43), - Arrays.asList(2, 10, 15, 21), + Arrays.asList(10, -1, 2, -1), 6, - 5 + 1, + true ) - ); } }