Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.63 KB | None | 0 0
  1. boolean gelukt=false;
  2.                    
  3.         int category;
  4.                    
  5.         while(gelukt == false){
  6.             System.out.println("Kies een categorie d.m.v. het bijhorende nummer.\n" +
  7.                         "0. Ones\n" +
  8.                         "1. Twos\n" +
  9.                         "2. Threes\n" +
  10.                         "3. Fours\n" +
  11.                         "4. Fives\n" +
  12.                         "5. Sixes\n" +
  13.                         "6. Three of a Kind\n" +
  14.                         "7. Four of a Kind\n" +
  15.                         "8. Full House\n" +
  16.                         "9. Small Straight\n" +
  17.                         "10. Large Straight\n" +
  18.                         "11. Yahtzee!\n" +
  19.                         "12. Chance");
  20.                 Scanner scan = new Scanner(System.in);
  21.                 category = scan.nextInt();
  22.                
  23.                 gelukt = assignThrow(roll, posCategories[category]);
  24.                 }
  25.         }
  26.     }
  27.  
  28.     private void showDiceRoll() {
  29.         System.out.println("Je gooide de volgende waarden: ");
  30.         for(int i=0; i < roll.length; i++){
  31.             System.out.print(roll[i]+" ");
  32.         }
  33.     }
  34.  
  35.     private void getPlayers() {
  36.    
  37.         String name="";
  38.         System.out.println("Geef de namen van de spelers in. Kies -1 om door te gaan.");
  39.         Scanner s = new Scanner(System.in);
  40.        
  41.         while(!name.equals("-1")) {
  42.              name = s.nextLine();
  43.              if(!name.equals("-1")) addPlayer(name);
  44.         }
  45.     }
  46.  
  47.     public boolean assignThrow(int[] dicethrow, int category){
  48.        
  49.         if(scoreCard[category][currentPlayer] != UNASSIGNED){ // we hoeven niet meer te vragen naar een andere categorie indien de gekozen categorie
  50.             // ongeldig is. Indien dit zo is, sturen we nl. een false terug naar 'gelukt' in playRound en zal de lus daar worden uitgevoerd. De code
  51.             // beschreven in die lus is net diegene die aan de gebruiker opnieuw vraagt voor een categorie. Dit wordt gedaan tot er een geldige waarde
  52.             // is ingegeven.
  53.             return false;
  54.         }
  55.        
  56.         if(scoreCard[category][currentPlayer] == UNASSIGNED){
  57.            
  58.             // Berekening van de score voor de eerste 6 categoriën (bovenste vakjes).
  59.             int scoreCategory=0;
  60.             if(category >= 0 && category <= 5){
  61.                 for(int i=0; i < N_DICE; i++){
  62.                     if(roll[i]==category+1){
  63.                         scoreCategory = scoreCategory + category + 1;
  64.                     }
  65.                 }
  66.                 scoreCard[category][currentPlayer] = scoreCategory;
  67.                
  68.                 scoreCard[UPPER_SCORE][currentPlayer] = Math.max(scoreCard[ONES][currentPlayer],0)+Math.max(scoreCard[TWOS][currentPlayer],0)+
  69.                 Math.max(scoreCard[THREES][currentPlayer],0)+Math.max(scoreCard[FOURS][currentPlayer],0)+Math.max(scoreCard[FIVES][currentPlayer],0)+
  70.                 Math.max(scoreCard[SIXES][currentPlayer],0); //Math.max neemt het max van de twee waarden, dus als category op UNASSIGNED (-1) staat, verschijnt er 0.
  71.                 if(scoreCard[UPPER_SCORE][currentPlayer] >= UPPERVALUE){
  72.                     scoreCard[UPPER_BONUS][currentPlayer] = 35;
  73.                 }
  74.             }
  75.            
  76.             // Berekening voor de onderste vakjes.
  77.             else if(category > 5){
  78.                 categoryCheck(category);
  79.                
  80.                 scoreCard[LOWER_SCORE][currentPlayer] = Math.max(scoreCard[THREE_OF_A_KIND][currentPlayer],0)+Math.max(scoreCard[FOUR_OF_A_KIND][currentPlayer],0)+
  81.                 Math.max(scoreCard[FULL_HOUSE][currentPlayer],0)+Math.max(scoreCard[SMALL_STRAIGHT][currentPlayer],0)+Math.max(scoreCard[LARGE_STRAIGHT][currentPlayer],0)+
  82.                 Math.max(scoreCard[YAHTZEE][currentPlayer],0)+Math.max(scoreCard[CHANCE][currentPlayer],0);
  83.             }
  84.            
  85.             if(category == CHANCE){
  86.                 int scoreChance = roll[0]+roll[1]+roll[2]+roll[3]+roll[4];
  87.                 scoreCard[CHANCE][currentPlayer] = scoreChance;
  88.             }
  89.            
  90.             scoreCard[TOTAL][currentPlayer]= Math.max(scoreCard[UPPER_SCORE][currentPlayer],0)+Math.max(scoreCard[LOWER_SCORE][currentPlayer],0)+
  91.             Math.max(scoreCard[UPPER_BONUS][currentPlayer],0);
  92.         }
  93.         return true;
  94.     }
  95.    
  96.     private void categoryCheck(int category) {
  97.        
  98.         Arrays.sort(roll);
  99.        
  100.         if(category == THREE_OF_A_KIND){
  101.                
  102.             if((roll[0]==roll[1] && roll[1]==roll[2]) || (roll[2]==roll[3] && roll[3]==roll[4])){
  103.                 int scoreThreeOfaKind = roll[0]+roll[1]+roll[2]+roll[3]+roll[4];
  104.                 scoreCard[THREE_OF_A_KIND][currentPlayer] = scoreThreeOfaKind;
  105.             }
  106.             else{
  107.                 scoreCard[THREE_OF_A_KIND][currentPlayer] = 0;
  108.             }
  109.         }
  110.        
  111.         if(category == FOUR_OF_A_KIND){
  112.             if((roll[0]==roll[1] && roll[1]==roll[2] && roll[2]==roll[3]) || (roll[1]==roll[2] && roll[2]==roll[3] && roll[3]==roll[4])){
  113.                 int scoreFourOfaKind = roll[0]+roll[1]+roll[2]+roll[3]+roll[4];
  114.                 scoreCard[FOUR_OF_A_KIND][currentPlayer] = scoreFourOfaKind;
  115.             }
  116.             else{
  117.                 scoreCard[FOUR_OF_A_KIND][currentPlayer] = 0;
  118.             }
  119.         }
  120.            
  121.         if(category == FULL_HOUSE){
  122.             if((roll[0]==roll[1] && roll[1]==roll[2] && roll[3]==roll[4]) || (roll[0]==roll[1] &&roll[2]==roll[3] && roll[3]==roll[4])){
  123.                 int scoreFullHouse = 25;
  124.                 scoreCard[FULL_HOUSE][currentPlayer] = scoreFullHouse;
  125.             }
  126.             else{
  127.                 scoreCard[FULL_HOUSE][currentPlayer] = 0;
  128.             }
  129.         }
  130.            
  131.         if(category == SMALL_STRAIGHT){
  132.             if((roll[1]==roll[0]+1 && roll[2]==roll[1]+1 && roll[3]==roll[2]+1) || (roll[4]==roll[3]+1 && roll[3]==roll[2]+1 && roll[2]==roll[1]+1)){
  133.                 int scoreSmallStraight = 30;
  134.                 scoreCard[SMALL_STRAIGHT][currentPlayer] = scoreSmallStraight;
  135.             }
  136.             else{
  137.                 scoreCard[SMALL_STRAIGHT][currentPlayer] = 0;
  138.             }
  139.         }
  140.            
  141.         if(category == LARGE_STRAIGHT){
  142.             if(roll[0]==1 && roll[1]==2 && roll[2]==3 && roll[3]==4 && roll[4]==5){
  143.                 int scoreLargeStraight = 40;
  144.                 scoreCard[LARGE_STRAIGHT][currentPlayer] = scoreLargeStraight;
  145.             }
  146.             else{
  147.                 scoreCard[LARGE_STRAIGHT][currentPlayer] = 0;
  148.             }
  149.         }
  150.            
  151.         if(category == YAHTZEE){
  152.             if(roll[0]==roll[1] && roll[1]==roll[2] && roll[2]==roll[3] && roll[3]==roll[4]){
  153.                     int scoreYahtzee = 50;
  154.                     scoreCard[YAHTZEE][currentPlayer] = scoreYahtzee;
  155.                 }
  156.                 else{
  157.                     scoreCard[YAHTZEE][currentPlayer] = 0;
  158.                 }
  159.             }
  160.     }
  161.  
  162.     /* Java main method to ensure that this program starts correctly */
  163.     public static void main(String[] args) {
  164.         new Yahtzee().playGame();
  165.     }
  166.    
  167.  
  168.    
  169.  
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement