我有一个按钮:Gooi 我有2名球员可以在彼此之后掷骰子。因此,玩家1可以投掷,然后是玩家1,然后是玩家2.我不知道该怎么做。我不知道是否应该使用一段时间或for循环来检查玩家是否已经转过来。
我的代码:
package Opdrachten;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
public class spel extends JPanel {
private JButton knop;
private boolean geklikt, player1, player2;
private JLabel speler1, speler2, plekOpBord, gegooid, bijzonderheid;
Random rand = new Random();
int waardeP1 = rand.nextInt(6) + 1;
int waardeP2 = rand.nextInt(6) + 1;
int optelP1 = 0;
int optelP2 = 0;
public spel() {
setBackground(Color.WHITE);
knop = new JButton("Gooi");
knop.addActionListener(new KnopHandler());
knop.setBounds(20,20, 100,20);
speler1 = new JLabel("Speler 1");
speler2 = new JLabel("Speler 2");
speler1.setBounds(20, 50, 50, 50);
speler2.setBounds(20, 80, 50, 50);
gegooid = new JLabel("");
gegooid.setBounds(140, 5, 150, 50);
plekOpBord = new JLabel("Plek op het bord");
plekOpBord.setBounds(140, 35, 100,50);
bijzonderheid = new JLabel("Bijzonderheid");
bijzonderheid.setBounds(260, 35, 100,50);
add(knop);
add(gegooid);
add(speler1);
add(speler2);
add(plekOpBord);
add(bijzonderheid);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(geklikt) {
optelP1 += waardeP1;
g.drawString("Speler 1 " + " heeft " + waardeP1 + " gegooid", 150,40);
g.drawString(""+optelP1, 175, 85);
}
if (optelP1 == 3) {
g.drawString("Bokkesprong", 260, 85);
}
if (optelP1 == 6) {
g.drawString("Brug", 260, 85);
}
if (optelP1 == 15) {
g.drawString("Vogelkooi", 260, 85);
}
if(optelP1 == 19){
g.drawString("Hotel", 260, 85);
}
if(optelP1 == 26){
g.drawString("Dobbelsteenvakje", 260, 85);
}
if(optelP1 == 31){
g.drawString("Put", 260, 85);
}
if(optelP1 == 39){
g.drawString("Trap", 260, 85);
}
if(optelP1 == 42){
g.drawString("Labyrint", 260, 85);
}
if(optelP1 == 52){
g.drawString("Gevangenis", 260, 85);
}
if(optelP1 == 58){
g.drawString("Graf", 260, 85);
}
if(optelP1 == 63){
g.drawString("Zonsondergang", 260, 85);
}
if(geklikt) {
optelP2 += waardeP2;
//g.drawString("Speler 1 " + " heeft " + waardeP2 + " gegooid", 150,40);
g.drawString(""+optelP2, 175, 110);
}
if (optelP2 == 3) {
g.drawString("Bokkesprong", 260, 110);
}
if (optelP2 == 6) {
g.drawString("Brug", 260, 110);
}
if (optelP2 == 15) {
g.drawString("Vogelkooi", 260, 110);
}
if(optelP2 == 19){
g.drawString("Hotel", 260, 110);
}
if(optelP2 == 26){
g.drawString("Dobbelsteenvakje", 260, 110);
}
if(optelP2 == 31){
g.drawString("Put", 260, 110);
}
if(optelP2 == 39){
g.drawString("Trap", 260, 110);
}
if(optelP2 == 42){
g.drawString("Labyrint", 260, 110);
}
if(optelP2 == 52){
g.drawString("Gevangenis", 260, 110);
}
if(optelP2 == 58){
g.drawString("Graf", 260, 110);
}
if(optelP2 == 63){
g.drawString("Zonsondergang", 260, 110);
}
}
class KnopHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
geklikt = true;
waardeP1 = rand.nextInt(6) + 1; // get another random number
waardeP2 = rand.nextInt(6) + 1; // get another random number
repaint();
}
}
}
答案 0 :(得分:0)
使用布尔值更改投掷玩家并在每次投掷时切换它。 切换布尔值的最简单方法是。
String#scan
答案 1 :(得分:0)
首先,我建议摆脱if-s。尝试切换,它更具可读性。
玩家切换你可以在控制游戏的类中实现。创建一个变量Player currentPlayer。现在创建一个带有一些终止条件的while循环,并在每个掷骰子之后将currentPlayer更改为其他玩家。