package Facade; import java.util.ArrayList; import Domain.*; public class Game { private ArrayList 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(); } }