この動画は前回作成した神経衰弱です。

カードを作成したあとシャッフルをするのですが、最初は以下のような方法を考えていました。

主要な部分だけなので前回作成したクラスとは違います。カードの画像は表示されません。

神経衰弱で必要なのは数字です。以下のクラスでは数字と表示する座標だけをあつかっています。

これを継承して以下のようなクラスを作成します。なにをしたいのかというとOrderにランダムに生成した値をセットしたあとこの値でソートすれば簡単にシャッフルと同じ効果が得られるかもしれないと考えているのです。

あとは以下のようにすればカードの番号だけがシャッフルされた状態で表示されるはずです。

これが実行結果です。上がシャッフルされるまえの状態、下がシャッフルされた状態です。

どうでしょうか? 隣が同じ数になっている場所が3箇所もあり、それ以外にも連続する数が隣にある場所が多くないでしょうか?

何回かやってみました。またrandom.Next(1000)の1000の部分も変えて実験してみたところ、以下のような結果になりました。独自の方法と書いている部分は前回の方法でシャッフルした場合の結果です。

シャッフルした結果をさらに連続でシャッフルしたらどうなるかも調べてみました([シャッフル]ボタンを連打すればよい)。

どうでしょうか? random.Nextの引数を大きくしたり小さくすることでとくに大きな変化はみられないように思えます。また連続でシャッフルの処理をしてもあまりかわらないようです。とりあえずシャッフルしてみて隣が同じ数とか連続する数が隣にある部分が多すぎる場合はもう一度処理をやり直すということで良さそうな気がします。