正しい数字をクリックするたびにランダム化されるグリッド内の数字 (0 ~ 9) を見つけてクリックするゲームを作成しています。
正しい数字をクリックすると、グリッドが再びランダム化されるようにしたいと思います。これをどのように行いますか?
最終的には次のようになります。
正しい数字をクリックするたびにランダム化されるグリッド内の数字 (0 ~ 9) を見つけてクリックするゲームを作成しています。
正しい数字をクリックすると、グリッドが再びランダム化されるようにしたいと思います。これをどのように行いますか?
最終的には次のようになります。
整数の配列を順番にレンダリングしていると思います:
for (int i = 0; i < arrayOfNumbers.Length; i++ ) {
// rendering here
render(arrayOfNumbers[i]);
}
その場合は..クリックが成功した後に配列をランダム化するだけです..次のようになります:
var rnd = new System.Random();
var arrayOfNumbers = Enumerable.Range(1, 9).OrderBy(r => rnd.Next()).ToArray();
その後、再レンダリングできます (または、ゲーム ループで配列のレンダリングを続行します)。配列が変更されたため、レンダリングも変更されます。
正しい数字のクリックを検出するたびに (これを行う方法を知っていることを願っています)、グリッドに表示している数字の配列を単純にランダム化します。
//Fisher-Yates algorithm
Random generator = new System.Random();
int len = array.Length;
while (len > 1)
{
len--;
int k = generator.Next(len + 1);
int temp = array[k];
array[k] = array[len];
array[len] = temp;
}