我试图用口袋妖怪卡创建记忆游戏。它似乎有一半的时间工作。当两张图片相同时,它似乎有效,但有时当我点击另一张照片时,它只会隐藏其中一张照片,有时甚至会隐藏错误的照片。 我需要发布我的整个代码吗?如果没有,请点击我的动作,如果它是同一张卡,我会比较。 tableauChoisi是我的数组,其中包含小精灵的数量。 jbtnTout是我的按钮数组
// ------------------------------------------------------------------------
public void actionPerformed(ActionEvent e) {
// ------------------------------------------------------------------------
Object src = e.getSource();
int tamponImage = 0;
final int temp = tamponImage;
int tamponIndice = 0;
for (int i = 0; i < jbtnTout.length; i++) {
final int ii = i;
if (src == jbtnTout[i]) {
click++;
if (click == 1) {
jbtnTout[i].setIcon(icon[tableauChoisi[i]]);
tamponImage = (int) (tableauChoisi[i]);
tamponIndice = i;
}
if (click == 2) {
jbtnTout[i].setIcon(icon[tableauChoisi[i]]);
click = 0;
if (tableauChoisi[tamponImage] == tableauChoisi[i]) {
jbtnTout[temp]
.setIcon(icon[tableauChoisi[ii]]);
jbtnTout[ii]
.setIcon(icon[tableauChoisi[ii]]);
} else if (tableauChoisi[tamponImage] != tableauChoisi[i]) {
new Thread(){
public void run(){
jbtnTout[temp].setIcon(icon[0]);
jbtnTout[ii].setIcon(icon[0]);
try{
Thread.sleep(5);
}catch(InterruptedException e){
}
}
}.start();
}
}
}
}
}
答案 0 :(得分:0)
您的temp
变量始终为0,因为它声明为final
,这可以解释为什么它总是与0索引而不是最后点击进行比较。
int tamponImage = 0;
final int temp = tamponImage;