Skip to content

Commit 951f2a8

Browse files
committed
implement solution
1 parent 7388a0a commit 951f2a8

File tree

3 files changed

+88
-16
lines changed

3 files changed

+88
-16
lines changed

DiceGame.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
2+
import java.util.ArrayList;
3+
import java.util.Scanner;
4+
5+
public class DiceGame {
6+
7+
private DiceCup diceCup;
8+
private ArrayList<Dice> dices;
9+
private ArrayList<Player> players;
10+
private Scanner scanner;
11+
private int numberOfActivePlayers;
12+
13+
public DiceGame(ArrayList<Player> players) {
14+
diceCup = new DiceCup();
15+
dices = new ArrayList<>();
16+
this.players = players;
17+
scanner = new Scanner(System.in);
18+
for (Player player : players) {
19+
player.setActive(true);
20+
}
21+
numberOfActivePlayers = players.size();
22+
}
23+
24+
public void start() {
25+
while (numberOfActivePlayers >= 1) {
26+
for (Player player : players) {
27+
if (player.isActive()) {
28+
move(player);
29+
}
30+
}
31+
}
32+
Player bestPlayer = players.get(0);
33+
for (Player player : players) {
34+
if (player.getScore() > bestPlayer.getScore()) {
35+
bestPlayer = player;
36+
}
37+
}
38+
System.out
39+
.println("Der Sieger heisst " + bestPlayer.getName() + " und hat " + bestPlayer.getScore() + " Punkte");
40+
}
41+
42+
private void move(Player player) {
43+
dices.add(new Dice(1));
44+
dices.add(new Dice(2));
45+
dices.add(new Dice(3));
46+
System.out.println(player.getName() + " hat aktuell " + player.getScore() + " Punkte");
47+
System.out.print(player.getName() + ", moechtest Du wuerfeln (true, false)?: ");
48+
if (scanner.nextBoolean()) {
49+
diceCup.rollTheDices(dices);
50+
int score = 0;
51+
for (Dice dice : dices) {
52+
score += dice.getValue();
53+
}
54+
System.out.println(player.getName() + " hat " + score + " Punkte");
55+
player.setScore(player.getScore() + score);
56+
System.out.println(player.getName() + " hat insgesamt " + player.getScore() + " Punkte");
57+
if (player.getScore() > 50) {
58+
System.out.println(player.getName() + " hat verloren");
59+
player.setScore(0);
60+
player.setActive(false);
61+
numberOfActivePlayers--;
62+
}
63+
} else {
64+
player.setActive(false);
65+
numberOfActivePlayers--;
66+
}
67+
System.out.println();
68+
dices.clear();
69+
}
70+
}

Exercise.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
1+
2+
import java.util.ArrayList;
3+
14
public class Exercise {
25

36
public static void main(String[] args) {
4-
Player player1 = new Player("Hans");
5-
Player player2 = new Player("Lisa");
6-
7-
Dice dice1 = new Dice(1);
8-
Dice dice2 = new Dice(2);
7+
ArrayList<Player> players = new ArrayList<>();
98

10-
dice1.rollTheDice();
11-
System.out.println(player1.getName() + " wuerfelt eine " + dice1.getValue());
12-
dice2.rollTheDice();
13-
System.out.println(player2.getName() + " wuerfelt eine " + dice2.getValue());
9+
players.add(new Player("Hans"));
10+
players.add(new Player("Lisa"));
11+
players.add(new Player("Peter"));
12+
DiceGame diceGame = new DiceGame(players);
1413

15-
if (dice1.getValue() > dice2.getValue()) {
16-
System.out.println(player1.getName() + " gewinnt");
17-
} else if (dice1.getValue() < dice2.getValue()) {
18-
System.out.println(player2.getName() + " gewinnt");
19-
} else {
20-
System.out.println("Unentschieden");
21-
}
14+
diceGame.start();
2215
}
2316
}

Player.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ public class Player {
22

33
private String name;
44
private int score;
5+
private boolean isActive;
56

67
public Player(String name) {
78
this.name = name;
@@ -18,4 +19,12 @@ public int getScore() {
1819
public void setScore(int score) {
1920
this.score = score;
2021
}
22+
23+
public boolean isActive() {
24+
return isActive;
25+
}
26+
27+
public void setActive(boolean isActive) {
28+
this.isActive = isActive;
29+
}
2130
}

0 commit comments

Comments
 (0)