我目前正在开发一个记忆游戏项目,您可以点击两张卡片来检查图片是否相同。我面临的问题是,如果两张卡片没有相同的图片,则第二张图片不会出现,第一张图片也会关闭。
以下是我认为存在某种错误的代码。
public void actionPerformed(ActionEvent e)
{
clicks +=1;
Card clicked = (Card)e.getSource();
clicked.changeColor();
for(int i=0;i<16;i++)
if(clicked == cards.get(i))
openCardIndices.add(i);
if(clicks==2 && openCardIndices.get(openCardIndices.size()-1)!=openCardIndices.get(openCardIndices.size()-2))
{
if(cards.get(openCardIndices.get(openCardIndices.size()-1)).equals(cards.get(openCardIndices.get(openCardIndices.size()-2))))
{
(cards.get(openCardIndices.get(openCardIndices.size()-1))).removeActionListener(this);
(cards.get(openCardIndices.get(openCardIndices.size()-2))).removeActionListener(this);
}
else
{
openCardIndices.remove(openCardIndices.size()-1);
openCardIndices.remove(openCardIndices.size()-1);
//lockCards();
unlockCards();
}
clicks = 0;
}
答案 0 :(得分:1)
您的代码告诉它这样做。
您可能希望else
子句执行以下操作:
或者
不会为你编写代码,但它是一条线索。