https://i.stack.imgur.com/5bPS6.jpg
因此,我一直在尝试用java编写此老虎机游戏,并且最近在尝试使用此解决方案的方法上遇到了问题。游戏的运作方式如下:每次点击名为x1的标签时,您都会投资1个比特币,并且有更高的机会赢得并赢得1个比特币。点击标签 X3,您可以获得中等获胜的机会(您赢得 3 个比特币(,如果点击标签 X5,您将获得赢得 5 个比特币的最低机会。1单击这些标签启用按钮"GO WIN!",稍后您必须单击该按钮才能运行所有内容。目前,我对编程它没有任何问题,让你在一定的机会下只赢得 1 个比特币,尽管其他两个标签是问题所在。有什么建议吗?
我知道 jframe 看起来很糟糕,尽管这只是我的练习:)
到目前为止的代码:
// TODO add your handling code here:
btnWinLose.setEnabled(false);
int slot1 = (int)(4*Math.random()+0);
int slot2 = (int)(4*Math.random()+0);
int slot3 = (int)(4*Math.random()+0);
lbl_1.setText(String.valueOf(slot1));
lbl_2.setText(String.valueOf(slot2));
lbl_3.setText(String.valueOf(slot3));
if(slot1 == slot2 ){
start = start +1;
lbl_Coin.setText(start + " COINS");
}
else{
start = start - 1;
lbl_Coin.setText(start + " COINS");
}
if(start == 0){
int n = JOptionPane.showConfirmDialog(
this,
"No coins left, start again?"+
JOptionPane.YES_NO_OPTION);
if(n == 0){
start=10;
lbl_Coin.setText(String.valueOf(start + " COINS"));
}
else{
System.exit(0);
}
}
确定单击了哪个标签的一种方法是在每个标签上使用MouseListener
。请参阅此问题作为参考。因此,让您的 GUI 类实现MouseListener
并执行以下操作:
public class myGUI extends JFrame implements ActionListener, MouseListener{
private JLabel x1,x2,x3;
public myGUI(){
// do constructor stuff
x1 = new JLabel("x1");
x2 = new JLabel("x2");
x3 = new JLabel("x3");
x1.addMouseListener(this);
x2.addMouseListener(this);
x3.addMouseListener(this);
}
// other methods
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource().equals(x1)){
// do x1 stuff
}
else if(e.getSource().equals(x2)){
// do x2 stuff
}
else if(e.getSource().equals(x3)){
// do x3 stuff
}
}
}