2

6 つの異なる画像があり、各画像が 2 つずつある 12 のタイルを表示するプログラムを作成しています。これは記憶ゲームで、ランダムなタイル配置の生成に取り組んでいます。RandomIntGenerator を使用してボード全体にタイルを配布する必要がありますが、RandomIntGenerator は数値を複製するため、これを行う方法が思いつきません。配列を使用することは許可されていません。これにより、これがはるかに簡単になります。これがどのように行われるかについての洞察を教えてもらえますか?

どんな助けでも本当に感謝しています! -ライアン

4

4 に答える 4

7

List<Integer>12 個の値 (1 ~ 12) を持つ を作成します。

List<Integer> list = new ArrayList<Integer>(12);
for(int i = 0; i < 12 ; i++){ list.add(i);}

そしてそれをシャッフルします

Collections.suffle(list)

于 2013-10-28T22:02:00.610 に答える
2

はい、カードをランダムにシャッフルする必要があるようです。たとえば、単純なFisher-Yatesシャッフルのバージョンを実装するか、実際に使用することができますCollections.shuffle()

于 2013-10-28T22:06:06.090 に答える
0
long pattern = 0b111111;
Random r = new Random();
while (pattern != 0) {
    int n = r.nextInt(6);
    long mask = 1 << n;
    if ((pattern & mask) == 0) continue;
    pattern ^= mask;
    System.out.println("n = " + n);
}
于 2013-10-28T22:53:02.650 に答える
0

これを試すことができます:

int suggestedPlacement = RandomIntGenerator.next();

while (tileAlreadyTaken(suggestedPlacement)) {
  suggestedPlacement = RandomIntGenerator.next();
}
于 2013-10-28T21:59:57.797 に答える