所以我正在用java开发这个yahtzee游戏,我想用这些骰子来显示数字1-6。我的问题是我用不同的方法得到不同的“骰子数”。
我的随机骰子方法:
public String roll(){
int dice1 = (int )(Math.random() * 6 + 1),
dice2 = (int )(Math.random() * 6 + 1),
dice3 = (int )(Math.random() * 6 + 1),
dice4 = (int )(Math.random() * 6 + 1),
dice5 = (int )(Math.random() * 6 + 1);
return dice1 +" "+ dice2 +" "+ dice3 +" "+ dice4 +" "+ dice5;
}
所以我有这个其他动作监听器方法。我有一个掷骰子的按钮。在这个方法中,我想拥有它,这样当我按下按钮时,会生成这些随机数,我可以在 paintComponent 方法中使用它们。但是当我尝试这样做时,我的 actionListener 方法和我的绘画组件中得到了不同的数字。
这是我的动作监听器:
roll.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
if(turn == true){
roll();
rolls++;
start = false;
updateUI();
System.out.println( roll() );
}
if(rolls == 3){
turn = false;
System.out.println("Out of rolls");
}
}
});
还有我的paintComponent:
public void paintComponent(java.awt.Graphics g){
super.paintComponent(g);
this.setBackground(Color.BLUE);
g.setColor(Color.WHITE);
g.fillRoundRect(getWidth() / 2 - 25, getHeight() / 2 - 35, 12, 12, 0, 0); //Dice 1
g.fillRoundRect(getWidth() / 2 - 10, getHeight() / 2 - 35, 12, 12, 0, 0); //Dice 2
g.fillRoundRect(getWidth() / 2 + 5, getHeight() / 2 - 35, 12, 12, 0, 0); //Dice 3
g.fillRoundRect(getWidth() / 2 + 20, getHeight() / 2 - 35, 12, 12, 0, 0); //Dice 4
g.fillRoundRect(getWidth() / 2 + 35, getHeight() / 2 - 35, 12, 12, 0, 0); //Dice 5
if(start == false){
g.setColor(Color.BLACK);
g.drawString( roll() , getWidth() / 2 - 25 , getHeight() / 2 - 25 );
}
}
我基本上希望所有方法的骰子上都有相同的数字,直到我再次按下滚动来更新它们。