|
|
|
@ -20,7 +20,7 @@ public class CardGame {
|
|
|
|
this.players = new Player[numberOfPlayers];
|
|
|
|
this.players = new Player[numberOfPlayers];
|
|
|
|
int cardsPerPlayer = deck.size() / numberOfPlayers;
|
|
|
|
int cardsPerPlayer = deck.size() / numberOfPlayers;
|
|
|
|
for (int i = 0; i < numberOfPlayers; i++) {
|
|
|
|
for (int i = 0; i < numberOfPlayers; i++) {
|
|
|
|
players[i] = new Player(String.valueOf(i), deck.getCardsForPlayer(cardsPerPlayer));
|
|
|
|
players[i] = new Player(String.valueOf(i), deck.take(cardsPerPlayer));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -28,10 +28,10 @@ public class CardGame {
|
|
|
|
while (noWinner()) {
|
|
|
|
while (noWinner()) {
|
|
|
|
draws.clear();
|
|
|
|
draws.clear();
|
|
|
|
for (int i = 0; i < numberOfPlayers; i++) {
|
|
|
|
for (int i = 0; i < numberOfPlayers; i++) {
|
|
|
|
System.out.printf("Player %d (%d cards): ", i, players[i].cardsCount());
|
|
|
|
String output = String.format("Player %d (%d cards)", i, players[i].cardsCount());
|
|
|
|
Card card = players[i].draw();
|
|
|
|
Card card = players[i].draw();
|
|
|
|
draws.add(card);
|
|
|
|
draws.add(card);
|
|
|
|
System.out.printf("%d - %s%n", card.number, card.suit);
|
|
|
|
Out.println(String.format("%s: %d - %s", output, card.number, card.suit));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
processWinner();
|
|
|
|
processWinner();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -48,12 +48,13 @@ public class CardGame {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pot.addAll(draws);
|
|
|
|
pot.addAll(draws);
|
|
|
|
if (draws.uniqueMaximum(max, maxIndex)) {
|
|
|
|
if (draws.uniqueMaximum(max, maxIndex)) {
|
|
|
|
System.out.printf("Player %d wins this round%n%n", maxIndex);
|
|
|
|
Out.println(String.format("Player %d wins this round", maxIndex));
|
|
|
|
players[maxIndex].discardPile.addAll(pot);
|
|
|
|
players[maxIndex].discardPile.addAll(pot);
|
|
|
|
pot.clear();
|
|
|
|
pot.clear();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
System.out.println("No winner in this round%n");
|
|
|
|
Out.println("No winner in this round");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Out.println();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean noWinner() {
|
|
|
|
private boolean noWinner() {
|
|
|
|
@ -64,7 +65,8 @@ public class CardGame {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (activePlayers.size() == 1) {
|
|
|
|
if (activePlayers.size() == 1) {
|
|
|
|
System.out.printf("Player %s wins the game!", activePlayers.get(0).name);
|
|
|
|
Out.println(String.format("Player %s wins the game!", activePlayers.get(0).name));
|
|
|
|
|
|
|
|
Out.println();
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
|