Java:记忆游戏
我目前正在做一个记忆游戏项目,你可以点击两张卡片来检查图片是否相同。我面临的问题是,如果两张牌没有相同的图片,第二张牌就不会出现,第一张牌也会关闭 这是我认为有某种错误的代码Java:记忆游戏,java,swing,interface,jbutton,actionlistener,Java,Swing,Interface,Jbutton,Actionlistener,我目前正在做一个记忆游戏项目,你可以点击两张卡片来检查图片是否相同。我面临的问题是,如果两张牌没有相同的图片,第二张牌就不会出现,第一张牌也会关闭 这是我认为有某种错误的代码 public void actionPerformed(ActionEvent e) { clicks +=1; Card clicked = (Card)e.getSour
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;
}
你的代码告诉它这样做 您可能希望else子句执行以下操作: 延迟2秒,然后使用解锁隐藏卡。 或许 在你再次点击其中一张之前,不要碰这些卡片。这需要计数器从1到2再到3,然后将它们翻转过来。
不打算为您编写代码,但这只是一个线索。所以您要把所有代码都扔给我们,然后说“修复它”?堆栈溢出不是这样工作的。我们不是您的个人代码调试器-您实际上必须尝试一些东西!我想发布所有的代码是可以的,但请给我们一个详细的解释,具体是您认为问题可能来自何处,以及通常可能相关的任何信息。很抱歉,我不是这个意思,我从2-3个小时以来一直在处理这个错误,并尝试了各种方法,但仍然无法克服它,所以我想,如果有人想尝试运行它来查看错误,那么发布我的全部代码可能会对我有好处:s我只是尝试注释解锁卡和显示的第二张卡,但是程序是否应该按顺序执行,为什么调用此方法会阻止图像显示,即使我在它之前使用了Thread.sleep。。