Skip to content

Commit 8936bc6

Browse files
committed
feat: Added startNewRound button, added resetPlayerDice method, updated newBetAction to return boolean to go to next player only if true
1 parent c9aec05 commit 8936bc6

1 file changed

Lines changed: 50 additions & 19 deletions

File tree

src/com/example/mypackage/GUI.java

Lines changed: 50 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)