Fassade edit

main
danai 2024-05-07 00:22:14 +02:00
parent 99f9aab7e3
commit c194baa303
1 changed files with 28 additions and 12 deletions

View File

@ -4,6 +4,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import domain.Kategorie;
import domain.Spiel; import domain.Spiel;
import domain.Spieler; import domain.Spieler;
import domain.Würfel; import domain.Würfel;
@ -13,12 +14,12 @@ public class KniffelSpiel {
private Spiel spiel; private Spiel spiel;
private Scanner scanner; private Scanner scanner;
private Würfel würfel; private Würfel würfel;
private int numPlayers;
public KniffelSpiel() { public KniffelSpiel() {
System.out.println("Willkommen zum Star Wars Day Kniffel!"); System.out.println("Willkommen zum Star Wars Day Kniffel!");
this.scanner = new Scanner(System.in); this.scanner = new Scanner(System.in);
int numPlayers;
int numSides; int numSides;
do { do {
@ -40,29 +41,39 @@ public class KniffelSpiel {
System.out.print("Enter player " + player.getNumber() + " name: "); System.out.print("Enter player " + player.getNumber() + " name: ");
player.setName(scanner.nextLine()); player.setName(scanner.nextLine());
} }
spiel.setCurrentPlayerIndex(0);
playGame(); playGame();
} }
private void playGame() { private void playGame() {
int numPlayers = spiel.getSpieler().size();
while (true) { while (true) {
spiel.nextPlayer();
int currentPlayerIndex = spiel.getCurrentPlayerIndex();
Spieler currentPlayer = spiel.getSpieler().get(currentPlayerIndex);
System.out.println("Player " + currentPlayer.getNumber() + " of " + numPlayers + "'s turn:");
for (Spieler player : spiel.getSpieler()) {
System.out.println("Player " + player.getNumber() + " of " + numPlayers + "'s turn:");
rollAndRerollDice(); rollAndRerollDice();
displayCategories(); displayCategories();
askUserForCategory(); askUserForCategory();
displayScore(); displayScore();
}
/*spiel.nextPlayer();
int currentPlayerIndex = spiel.getCurrentPlayerIndex();
int playerNumber = spiel.getCurrentPlayerIndex() + 1;
System.out.println("Player " + playerNumber + " of " + numPlayers + "'s turn:");
rollAndRerollDice();
displayCategories();
askUserForCategory();*/
if (isGameFinished()) { if (isGameFinished()) {
break; break;
} }
@ -79,7 +90,7 @@ public class KniffelSpiel {
} }
public void rollAndRerollDice() { public void rollAndRerollDice() {
// Бросаем все кубики в первый раз // Alle Würfel beim ersten Mal werfen
spiel.rollWürfel(); spiel.rollWürfel();
displayDiceValues(); displayDiceValues();
@ -90,7 +101,7 @@ public class KniffelSpiel {
System.out.println("Do you want to keep some dice for the next roll? (y/n): "); System.out.println("Do you want to keep some dice for the next roll? (y/n): ");
String answer = scanner.nextLine().toLowerCase(); String answer = scanner.nextLine().toLowerCase();
if (answer.equals("y")) { if (answer.equals("y")) {
// Сохраняем выбранные кубики и перебрасываем остальные // Speicher die ausgewählten Würfel und würfel die restlichen Würfel erneut
spiel.rerollWürfel(); spiel.rerollWürfel();
displayDiceValues(); displayDiceValues();
currentRoll++; currentRoll++;
@ -121,7 +132,6 @@ public class KniffelSpiel {
int score = calculateCategoryScore(categoryIndex, würfel); int score = calculateCategoryScore(categoryIndex, würfel);
spiel.setKategorieScore(categoryIndex, score); spiel.setKategorieScore(categoryIndex, score);
// Здесь добавьте код для присвоения результата игроку
int playerIndex = spiel.getCurrentPlayerIndex(); int playerIndex = spiel.getCurrentPlayerIndex();
spiel.getSpieler().get(playerIndex).setScoreForCategory(categoryIndex, score); spiel.getSpieler().get(playerIndex).setScoreForCategory(categoryIndex, score);
@ -138,10 +148,16 @@ public class KniffelSpiel {
} }
private boolean isGameFinished() { private boolean isGameFinished() {
// implement game finish condition here Kategorie[] categories = spiel.getKategorie();
for (Spieler player : spiel.getSpieler()) {
if (!player.hasUnusedCategories(categories)) {
return true;
}
}
return false; return false;
} }
private void displayFinalScore() { private void displayFinalScore() {
System.out.println("Final score: " + spiel.calculateTotalScore(würfel)); System.out.println("Final score: " + spiel.calculateTotalScore(würfel));
} }