

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

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

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

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


CC BY-SA 3.0
2015-06-27T12:18:49.557
11803
2015-07-08T00:31:39.207
10313
question
android
神経衰弱の逆を目的にカードをめくるアプリ


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

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

[code]

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

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


CC BY-SA 3.0
2015-07-04T05:47:22.520
12016
2015-07-04T05:47:22.520
8078
11803
answer


contains()が使えるかもしれません。  
カードが何種類あっても、めくる回数が増えても対応できます。

[code]

    ArrayList<カード> cards = new ArrayList<>();
    
    // カードがめくられた
    if (cards.contains(めくったカード)) {
        // 同じ絵柄(過去にめくった事がある)
    } else {
        // 異なる絵柄(はじめて)
        cards.add(めくったカード);  // 追加しておく
    }
    
[/code]


CC BY-SA 3.0
2015-07-08T00:31:39.207
12132
2015-07-08T00:31:39.207
7241
11803
answer