println moved to static class

master
Saša Kocić 6 years ago
parent 4e0e714851
commit 850d54ad7e

@ -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;

@ -2,9 +2,10 @@
* Card Game * Card Game
*/ */
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("Card Game");
CardGame cardGame = new CardGame(10, 2); CardGame cardGame = new CardGame(10, 2);
cardGame.play(); cardGame.play();
Out.toConsole();
} }
} }

@ -0,0 +1,18 @@
public class Out {
static String[] output = new String[50000];
static int line = 0;
public static void println(String string) {
output[line++] = string;
}
public static void println() {
output[line++] = "";
}
public static void toConsole() {
for (int i = 0; i < line; i++) {
System.out.println(output[i]);
}
}
}

@ -14,13 +14,13 @@ public class Pile extends ArrayList<Card> {
return deck; return deck;
} }
public Pile getCardsForPlayer(int number) { public Pile take(int number) {
Pile cardsForPlayer = new Pile(); Pile taken = new Pile();
for (int i = 0; i < number; i++) { for (int i = 0; i < number; i++) {
cardsForPlayer.add(get(0)); taken.add(get(0));
remove(0); remove(0);
} }
return cardsForPlayer; return taken;
} }
/** /**

Loading…
Cancel
Save