-4

ゲーム ボードの 3 つのスペースを残りのスペース (+1、+2、-1) とは異なるものにするプロジェクトに取り組んでいます。これらの値を ArrayList のインデックスに格納されている変数に追加する必要があります。インデックスの数を生成するものを見つけることができますが、それらが一意のインデックスであることを確認する方法がわかりません。(3 つの値すべてを 1 つのスペースに入れることはできません)

0 から 16 の範囲から 3 つの一意のランダムなインデックスを作成するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

考えられるすべての数字をリストに入れます - それらをシャッフルして、最初の 3 つを取ります。

public class Test {
  public void test() {
    System.out.println("Hello");
    List<Integer> numbers = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16));
    Collections.shuffle(numbers);
    System.out.println(numbers);
  }

  public static void main(String args[]) {
    new Test().test();
  }
}

印刷された

[5, 12, 4, 7, 2, 11, 14, 9, 3, 0, 15, 8, 1, 10, 13, 16, 6]
于 2013-04-02T15:33:01.340 に答える
1

これを試して、与えられた数字のリストから一意の乱数を生成してください。

  1. すべての可能な値のリストを生成します。
  2. Collections から shuffle メソッドを使用してシャッフルします。Collections.shuffle(list);
  3. 各ステップで反復してアイテムを取得します。
于 2013-04-02T15:28:42.760 に答える