@@ -22,6 +22,8 @@ public class GUI {
2222 private ArrayList <Player > players ;
2323 private JButton betButton = new JButton ("Enter" );
2424 private JButton revealDiceButton = new JButton ("Reveal Dice" );
25+ private JButton newRoundButton = new JButton ("New Round" );
26+
2527
2628
2729 public GUI (Perudo perudo ) {
@@ -32,12 +34,25 @@ public GUI(Perudo perudo) {
3234 betButton .addActionListener (new ActionListener () {
3335 @ Override
3436 public void actionPerformed (ActionEvent e ) {
35- newBetAction ();
36- goToNextPlayer ();
37+ if (newBetAction ()){
38+ goToNextPlayer ();
39+ };
3740 }
3841 });
3942
40-
43+ newRoundButton .addActionListener (new ActionListener () {
44+ @ Override
45+ public void actionPerformed (ActionEvent e ) {
46+ startNewRound ();
47+ }
48+ });
49+ revealDiceButton .addActionListener (new ActionListener () {
50+ @ Override
51+ public void actionPerformed (ActionEvent e ) {
52+ revealPlayersDice ();
53+ perudo .revealDice ();
54+ }
55+ });
4156
4257 // the panel with the button and text
4358 JPanel betPanel = new JPanel ();
@@ -52,6 +67,7 @@ public void actionPerformed(ActionEvent e) {
5267 betPanel .add (textDiceInHand );
5368 betPanel .add (labelWarning );
5469 betPanel .add (revealDiceButton );
70+ betPanel .add (newRoundButton );
5571 frame .setSize (800 ,800 );
5672 mainPanel .setLayout (new GridLayout (3 , 3 ));
5773 mainPanel .setBackground (new Color (150 ,150 ,150 ));
@@ -79,15 +95,16 @@ public void setPlayerFrame() {
7995 mainPanel .add (playersPanel [i ]);
8096 playersPanel [i ].setFont (new Font ("MV Boli" , Font .BOLD , 15 ));
8197 }
82- revealDiceButton .addActionListener (new ActionListener () {
83- @ Override
84- public void actionPerformed (ActionEvent e ) {
85- revealPlayersDice ();
86- // perudo.revealDice();
87- }
88- });
98+
8999 }
100+ public void resetPlayerDice () {
101+ int playersNum = players .size ();
102+ for (int i = 0 ; i < playersNum ; i ++) {
103+ Player player = players .get (i );
104+ playersPanel [i ].setText (player .getName () + ": " + player .getNumberOfDice () + " dice\n " );
105+ }
90106
107+ }
91108 public void revealPlayersDice () {
92109 int playersNum = players .size ();
93110 for (int i = 0 ; i < playersNum ; i ++) {
@@ -96,19 +113,22 @@ public void revealPlayersDice() {
96113 }
97114 }
98115
99- public void newBetAction (){
116+ public boolean newBetAction (){
100117 try {
101118 int num = Integer .parseInt (textFieldNum .getText ()) ;
102119 int val = Integer .parseInt (textFieldVal .getText ());
103- if (perudo .isNewBetHigher (num , val )){
104- labelWarning .setText ("You made a new bet: " +num + " " + val +"'s" );
120+ if (perudo .isfirstRound () || perudo .isNewBetHigher (num , val )){
105121 perudo .makeABet (new int [] {num , val });
106122 showPlayersBet (players .get (0 ), new int [] {num , val });
123+ labelWarning .setText ("You made a new bet: " +num + " " + val +"'s" );
124+ return true ;
107125 } else {
108126 labelWarning .setText ("Invalid Bet." );
109- };
127+ return false ;
128+ }
110129 } catch (NumberFormatException e ){
111130 labelWarning .setText ("Please enter a number." );
131+ return false ;
112132 }
113133
114134
@@ -125,7 +145,6 @@ public void showPlayersBet(Player player, int[] currentBet){
125145 public void showPlayersDice (){
126146 int playersNum = players .size ();
127147 for (int i = 0 ; i < playersNum ; i ++) {
128- playersPanel [i ] = new JLabel ();
129148 Player player = players .get (i );
130149 playersPanel [i ].setText (player .getName () + " had: " + Arrays .toString (player .getDiceValues ()));
131150 }
@@ -135,7 +154,21 @@ public void showDiceInHand(){
135154 textDiceInHand .setText (Arrays .toString (
136155 players .get (0 ).getDiceValues ()));
137156 }
157+ public void startNewRound (){
158+ perudo .shuffleDice ();
159+ showDiceInHand ();
160+ resetPlayerDice ();
161+ if (perudo .getCurrentPlayer () instanceof RobotPlayer ) robotBet ();
162+
163+ }
164+ public void robotBet (){
165+ RobotPlayer robotPlayer = (RobotPlayer ) perudo .getCurrentPlayer ();
166+ int [] newBet = robotPlayer .makeABet (perudo .getNumberOfDice ());
167+ perudo .makeABet (newBet );
168+ // Update UI with Bet Value
169+ showPlayersBet (robotPlayer , newBet );
138170
171+ }
139172 public void goToNextPlayer () {
140173 try {
141174 TimeUnit .SECONDS .sleep (1 );
@@ -146,12 +179,10 @@ public void goToNextPlayer() {
146179 if (perudo .getCurrentPlayer () instanceof RobotPlayer ){
147180 RobotPlayer robotPlayer = (RobotPlayer ) perudo .getCurrentPlayer ();
148181 if (robotPlayer .decideToBet (perudo .getCurrentBet (),perudo .getNumberOfDice ())){
149- int [] newBet = robotPlayer .makeABet (perudo .getCurrentBet ());
150- perudo .makeABet (newBet );
151- showPlayersBet (robotPlayer , newBet );
182+ robotBet ();
152183 } else {
153- perudo .revealDice ();
154184 showPlayersDice ();
185+ perudo .revealDice ();
155186 }
156187
157188 }
0 commit comments