Browse Source

Saving user input updates for Yahtzee and ScoreSheet

Lauren Green 6 years ago
parent
commit
dcff23698e

+ 25
- 4
src/main/java/io/zipcoder/casino/ScoreSheet.java View File

@@ -6,10 +6,11 @@ import java.util.*;
6 6
 
7 7
 public class ScoreSheet {
8 8
 
9
-    private enum ROW{
9
+    public enum ROW{
10 10
         ACES, TWOS, THREES, FOURS, FIVES, SIXES, THREEOFAKIND, FOUROFAKIND, FULLHOUSE, SMALLSTRAIGHT, LARGESTRAIGHT, YAHTZEE, CHANCE;
11 11
     }
12 12
     private Map<ROW, Integer> scores = new EnumMap<>(ROW.class);
13
+    private static final int size = ROW.values().length;
13 14
 
14 15
     ScoreSheet(){
15 16
 
@@ -37,9 +38,21 @@ public class ScoreSheet {
37 38
         }
38 39
 
39 40
     public void printScoreCard(){
40
-        for(ROW r : ROW.values()) {
41
-            System.out.println(r + ": " + scores.get(r));
42
-        }
41
+        System.out.println(
42
+                "1. Aces: Totals all Ones ** Score **" + getScore(ScoreSheet.ROW.ACES) + "\n" +
43
+                "2. Twos: Totals all Twos ** Score **" + getScore(ScoreSheet.ROW.TWOS) + "\n" +
44
+                "3. Threes: Totals all Threes ** Score **" + getScore(ScoreSheet.ROW.THREES) + "\n" +
45
+                "4. Fours: Totals all Fours ** Score **" + getScore(ScoreSheet.ROW.FOURS) + "\n" +
46
+                "5. Fives: Totals all Fives ** Score **" + getScore(ScoreSheet.ROW.FIVES) + "\n" +
47
+                "6. Sixes: Totals all Sixes ** Score **" + getScore(ScoreSheet.ROW.SIXES) + "\n" +
48
+                "7. 3 of a Kind ** Score **" + getScore(ScoreSheet.ROW.THREEOFAKIND) + "\n" +
49
+                "8. 4 of a Kind ** Score **" + getScore(ScoreSheet.ROW.FOUROFAKIND) + "\n" +
50
+                "9. Full House ** Score **" + getScore(ScoreSheet.ROW.FULLHOUSE) + "\n" +
51
+                "10. Small Straight: Sequence of 4 ** Score **" + getScore(ScoreSheet.ROW.SMALLSTRAIGHT) + "\n" +
52
+                "11. Large Striaght: Sequence of 5 ** Score **" + getScore(ScoreSheet.ROW.LARGESTRAIGHT) + "\n" +
53
+                "12. Yahtzee: 5 of a Kind ** Score **" + getScore(ScoreSheet.ROW.YAHTZEE) + "\n" +
54
+                "13. Chance: Sum of Dice ** Score **" + getScore(ScoreSheet.ROW.CHANCE) + "\n" +
55
+                "****************** TOTAL SCORE ******************" + getTotalScore());
43 56
 
44 57
     }
45 58
 
@@ -204,4 +217,12 @@ public class ScoreSheet {
204 217
         }
205 218
         return score;
206 219
     }
220
+
221
+    public static int getSize() {
222
+        return size;
223
+    }
224
+
225
+    public Integer getScore(ROW row) {
226
+        return this.scores.get(row);
227
+    }
207 228
 }

+ 70
- 5
src/main/java/io/zipcoder/casino/Yahtzee.java View File

@@ -1,9 +1,12 @@
1 1
 package io.zipcoder.casino;
2 2
 
3
+import java.util.Scanner;
4
+
3 5
 public class Yahtzee extends DiceGame implements Game{
4 6
 
5 7
     private Dice[] cup;
6 8
     DicePlayer dicePlayer;
9
+    private Scanner scanner = new Scanner(System.in);
7 10
 
8 11
     public Yahtzee(Player player) {
9 12
         this.dicePlayer = new DicePlayer(player);
@@ -44,17 +47,79 @@ public class Yahtzee extends DiceGame implements Game{
44 47
     }
45 48
 
46 49
     public void StartRound() {
47
-        for(Dice d : dicePlayer.getCup()) {
48
-            d.roll();
49
-        }
50
-        dicePlayer.printCup();
51 50
 
52
-        //roundRoutine();
51
+        for(int i = 0; i < ScoreSheet.getSize(); i++) {
52
+            for (Dice d : dicePlayer.getCup()) {
53
+                d.roll();
54
+            }
55
+            dicePlayer.printCup();
56
+
57
+            roundRoutine();
58
+
59
+        }
53 60
 
54 61
     }
55 62
 
63
+    public void recordingScore() {
64
+            System.out.println("Which row would you like to apply your turn to on the scoresheet?.\n" +
65
+                    "Remember you can only use each row once!");
66
+            dicePlayer.getScoreSheet().printScoreCard();
67
+
68
+            int choice = scanner.nextInt();
69
+            ScoreSheet.ROW row = ScoreSheet.ROW.CHANCE;
70
+            switch(choice) {
71
+                case 1: row = ScoreSheet.ROW.ACES;
72
+                    break;
73
+                case 2: row = ScoreSheet.ROW.TWOS;
74
+                    break;
75
+                case 3: row = ScoreSheet.ROW.THREES;
76
+                    break;
77
+                case 4: row = ScoreSheet.ROW.FOURS;
78
+                    break;
79
+                case 5: row = ScoreSheet.ROW.FIVES;
80
+                    break;
81
+                case 6: row = ScoreSheet.ROW.SIXES;
82
+                    break;
83
+                case 7: row = ScoreSheet.ROW.THREEOFAKIND;
84
+                    break;
85
+                case 8: row = ScoreSheet.ROW.FOUROFAKIND;
86
+                    break;
87
+                case 9: row = ScoreSheet.ROW.FULLHOUSE;
88
+                    break;
89
+                case 10: row = ScoreSheet.ROW.SMALLSTRAIGHT;
90
+                    break;
91
+                case 11: row = ScoreSheet.ROW.LARGESTRAIGHT;
92
+                    break;
93
+                case 12: row = ScoreSheet.ROW.YAHTZEE;
94
+                    break;
95
+                case 13: row = ScoreSheet.ROW.CHANCE;
96
+                    break;
97
+            }
98
+            dicePlayer.getScoreSheet().setRow(row, dicePlayer.getCup());
99
+        }
100
+
101
+
56 102
     public void roundRoutine(){
57 103
 
104
+        for(int i = 0; i < 2; i++) {
105
+            System.out.println("Would you like to:\n1. Roll all dice again.\n2. Roll some dice again.\n3.Stop rolling and score.");
106
+            int choice = scanner.nextInt();
107
+
108
+            switch (choice) {
109
+                case 1:
110
+                    for (Dice d : dicePlayer.getCup()) {
111
+                        d.roll();
112
+                    }
113
+                    dicePlayer.printCup();
114
+                    break;
115
+
116
+                case 2:
117
+                    break;
118
+                case 3:
119
+                    break;
120
+            }
121
+        }
122
+
58 123
         //ask if they want to score, or roll again?
59 124
 
60 125
             //roll again if requested

+ 1
- 2
src/test/java/io/zipcoder/casino/ScoreSheetTest.java View File

@@ -3,9 +3,8 @@ package io.zipcoder.casino;
3 3
 import org.junit.Assert;
4 4
 import org.junit.Test;
5 5
 
6
-import java.lang.reflect.Array;
6
+
7 7
 import java.util.ArrayList;
8
-import java.util.Arrays;
9 8
 import java.util.Collections;
10 9
 
11 10
 public class ScoreSheetTest {