だから私はJavaでこのヤッツィーゲームに取り組んでいて、これらのサイコロを使って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");
}
}
});
そして私のペイントコンポーネント:
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 );
}
}
私は基本的に、ロールをもう一度押して更新するまで、すべての方法のサイコロに同じ数字を入れたいと思っています。