神経衰弱の逆を目的にカードをめくるアプリ


<http://pastebin.com/KTCkMu1p>  
1枚を裏返ったトランプ[img_0]､3枚の異なる絵柄の画像[img_s1~s3]を計4枚のカードとして､  
画面に6枚裏返ったトランプの画像を表示し､三回連続して異なる絵柄を出したらクリア  
三回目までに同じ絵柄を出してしまったらゲームオーバー  
という内容のアプリを作りたいと考えています｡現在詰まっている事ｔ

  * タップしたカードをどうやって1枚目にタップしたカード変数として処理  
card1 = 一枚目に出てきたカード; のように宣言し､

  * if(二枚目にタップしたカード!=一枚目にタップしたカード)
  * if(三枚目!=二枚目 || 一枚目)

というifのネストで処理するのはどういったように書けばいいでしょうか｡  
ご教授お願いします｡




Javaは分からないので、一般的なコーディングの仕方での回答となります。

if文をたくさん組み合わせて判定することもできますが、それよりも判定ロジックを抽象化した、こんな感じの関数を用意するほうがよいと思います。

[code]

    boolean めくったカードが重複しているか(今までにめくったカードのリスト, 新しくめくったカード) {
        for (カード : 今までにめくったカードのリスト) {
            if (カード == 新しくめくったカード) return true;
        }
        return false;
    }
    
[/code]

あとは、新しくカードをめくるたびに  
1. 「めくったカードが重複しているか」関数を呼ぶ  
2. 「今までにめくったカードのリスト」に、めくったカードを追加する  
という処理を繰り返せば良いはずです。  
何枚めくっても、この関数を呼ぶだけで判定できます。

