-3

私は現在、2 枚のカードをクリックして絵が同じかどうかを確認する記憶ゲーム プロジェクトに取り組んでいます。私が直面している問題は、両方のカードに同じ画像がない場合、2 番目の画像が表示されず、最初の画像も閉じてしまうことです。

これは、何らかのエラーがあると思われるコードです。

 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;
                 }   
4

1 に答える 1

1

あなたのコードはそれを行うように指示します。

おそらく、そのelse句で次のようなことをしたいと思うでしょう:

  • ロック解除でカードを非表示にする前に、2 秒待ちます。

または多分

  • いずれかのカードをもう一度クリックするまで、カードはそのままにしておきます。これには、カウンターを 1 から 2 に移動し、次に 3 に移動する必要があります。

あなたのためにコードを書くつもりはありませんが、その手がかりです。

于 2013-07-23T22:17:17.817 に答える