151 lines
4.8 KiB
Java
151 lines
4.8 KiB
Java
package Facade;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import Domain.*;
|
|
|
|
public class Game {
|
|
|
|
private ArrayList<Player> players = new ArrayList<>();
|
|
private int numberOfDice;
|
|
private Dice dice = new Dice(numberOfDice);
|
|
private int[] diceValues;
|
|
private Yatzy_Sheet sheet = new Yatzy_Sheet();
|
|
|
|
private Ones ones = new Ones();
|
|
private Twos twos = new Twos();
|
|
private Threes threes = new Threes();
|
|
private Fours fours = new Fours();
|
|
private Fives fives = new Fives();
|
|
private Sixes sixes = new Sixes();
|
|
private TwoPairs twoPairs = new TwoPairs();
|
|
private ThreePairs threePairs = new ThreePairs();
|
|
private FourPairs fourPairs = new FourPairs();
|
|
private FullHouse fullHouse = new FullHouse();
|
|
private StraightFlush straightFlush = new StraightFlush();
|
|
private RoyalStraightFlush royalStraightFlush = new RoyalStraightFlush();
|
|
private Yatzy yatzy = new Yatzy();
|
|
|
|
|
|
public void startgame(int playerCount, String[] name, int numberOfDice){
|
|
for(int i = 0; i < playerCount; i++){
|
|
Player player1 = new Player(name[i], sheet, dice);
|
|
players.add(player1);
|
|
}
|
|
}
|
|
|
|
// public void startgame(int playerCount, String[] name, int numberOfDice){
|
|
// this.numberOfDice = numberOfDice;
|
|
// dice = new Dice(numberOfDice);
|
|
// for(int i = 0; i < playerCount; i++){
|
|
// Player player = new Player(name[i], sheet, dice);
|
|
// players.add(player);
|
|
// }
|
|
// }
|
|
|
|
public int[] rollDice(Dice dice){
|
|
dice.rollDice(numberOfDice);
|
|
int[] diceValues = dice.getValues();
|
|
return diceValues;
|
|
}
|
|
|
|
public void choosCategory(int category){
|
|
switch(category){
|
|
case 1:
|
|
ones.correctCategory(diceValues);
|
|
sheet.addScore(0, ones.getScore(diceValues));
|
|
break;
|
|
case 2:
|
|
twos.correctCategory(diceValues);
|
|
sheet.addScore(1, twos.getScore(diceValues));
|
|
break;
|
|
case 3:
|
|
threes.correctCategory(diceValues);
|
|
sheet.addScore(2, threes.getScore(diceValues));
|
|
break;
|
|
case 4:
|
|
fours.correctCategory(diceValues);
|
|
sheet.addScore(3, fours.getScore(diceValues));
|
|
break;
|
|
case 5:
|
|
fives.correctCategory(diceValues);
|
|
sheet.addScore(4, fives.getScore(diceValues));
|
|
break;
|
|
case 6:
|
|
sixes.correctCategory(diceValues);
|
|
sheet.addScore(5, sixes.getScore(diceValues));
|
|
break;
|
|
case 7:
|
|
twoPairs.correctCategory(diceValues);
|
|
sheet.addScore(6, twoPairs.getScore(diceValues));
|
|
break;
|
|
case 8:
|
|
threePairs.correctCategory(diceValues);
|
|
sheet.addScore(7, threePairs.getScore(diceValues));
|
|
break;
|
|
case 9:
|
|
fourPairs.correctCategory(diceValues);
|
|
sheet.addScore(8, fourPairs.getScore(diceValues));
|
|
break;
|
|
case 10:
|
|
fullHouse.correctCategory(diceValues);
|
|
sheet.addScore(9, fullHouse.getScore(diceValues));
|
|
break;
|
|
case 11:
|
|
straightFlush.correctCategory(diceValues);
|
|
sheet.addScore(10, straightFlush.getScore(diceValues));
|
|
break;
|
|
case 12:
|
|
royalStraightFlush.correctCategory(diceValues);
|
|
sheet.addScore(11, royalStraightFlush.getScore(diceValues));
|
|
break;
|
|
case 13:
|
|
yatzy.correctCategory(diceValues);
|
|
sheet.addScore(12, yatzy.getScore(diceValues));
|
|
break;
|
|
}
|
|
}
|
|
|
|
public boolean isGameOver(){
|
|
if(sheet.fullArray() == true){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public int getScore(){
|
|
return sheet.getSum();
|
|
}
|
|
|
|
public int[] getCategoryScore(){
|
|
return sheet.getTabelle();
|
|
}
|
|
|
|
public String getPlayerName(int playerIndex) {
|
|
if (playerIndex >= 0 && playerIndex < players.size()) {
|
|
return players.get(playerIndex).getName();
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public String getCategoryNames(){
|
|
String[] categorynames = new String[13];
|
|
|
|
categorynames[0] = "Ones";
|
|
categorynames[1] = "Twos";
|
|
categorynames[2] = "Threes";
|
|
categorynames[3] = "Fours";
|
|
categorynames[4] = "Fives";
|
|
categorynames[5] = "Sixes";
|
|
categorynames[6] = "Two Pairs";
|
|
categorynames[7] = "Three Pairs";
|
|
categorynames[8] = "Four Pairs";
|
|
categorynames[9] = "Full House";
|
|
categorynames[10] = "Straight Flush";
|
|
categorynames[11] = "Royal Straight Flush";
|
|
categorynames[12] = "Yatzy";
|
|
|
|
return categorynames.toString();
|
|
}
|
|
}
|