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 Player player1; private Yatzy_Sheet sheet = new Yatzy_Sheet(); private Ones ones = new Ones(player1); private Twos twos = new Twos(player1); private Threes threes = new Threes(player1); private Fours fours = new Fours(player1); private Fives fives = new Fives(player1); private Sixes sixes = new Sixes(player1); private TwoPairs twoPairs = new TwoPairs(player1); private ThreePairs threePairs = new ThreePairs(player1); private FourPairs fourPairs = new FourPairs(player1); private FullHouse fullHouse = new FullHouse(player1); private StraightFlush straightFlush = new StraightFlush(player1); private RoyalStraightFlush royalStraightFlush = new RoyalStraightFlush(player1); private Yatzy yatzy = new Yatzy(player1); public void startgame(int playerCount, String[] name, int numberOfDice){ for(int i = 0; i < playerCount; i++){ player1 = new Player(name[i], sheet, dice); players.add(player1); } } 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()); break; case 2: twos.correctCategory(diceValues); sheet.addScore(1, twos.getScore()); break; case 3: threes.correctCategory(diceValues); sheet.addScore(2, threes.getScore()); break; case 4: fours.correctCategory(diceValues); sheet.addScore(3, fours.getScore()); break; case 5: fives.correctCategory(diceValues); sheet.addScore(4, fives.getScore()); break; case 6: sixes.correctCategory(diceValues); sheet.addScore(5, sixes.getScore()); break; case 7: twoPairs.correctCategory(diceValues); sheet.addScore(6, twoPairs.getScore()); break; case 8: threePairs.correctCategory(diceValues); sheet.addScore(7, threePairs.getScore()); break; case 9: fourPairs.correctCategory(diceValues); sheet.addScore(8, fourPairs.getScore()); break; case 10: fullHouse.correctCategory(diceValues); sheet.addScore(9, fullHouse.getScore()); break; case 11: straightFlush.correctCategory(diceValues); sheet.addScore(10, straightFlush.getScore()); break; case 12: royalStraightFlush.correctCategory(diceValues); sheet.addScore(11, royalStraightFlush.getScore()); break; case 13: yatzy.correctCategory(diceValues); sheet.addScore(12, yatzy.getScore()); 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 ""; } }