C# でトランプのデッキをシャッフルする
トランプのデッキをシャッフルできるプログラムを作成するには、シャッフル アルゴリズムの実装が必要です。 Fisher-Yates シャッフル アルゴリズムは、指定されたリストのランダムな置換を保証する広く使用されている手法です。
このアルゴリズムを C# で実装するには、次の手順を検討してください:
Fisher-Yates Shuffle クラスの作成:
静的クラスを定義する次のメソッドを含む FisherYates というクラス:
static public void Shuffle(int[] deck) { for (int n = deck.Length - 1; n > 0; --n) { int k = r.Next(n + 1); int temp = deck[n]; deck[n] = deck[k]; deck[k] = temp; } }
このメソッド内:
シャッフルDeck:
Deck クラスで、カードの配列 (カード) に対して FisherYates.Shuffle() メソッドを呼び出すメソッドを作成します:
public void Shuffle() { FisherYates.Shuffle(cards); }
プログラムの更新:
Program クラスの Main() メソッドは、カードの最初のリストを表示した後、デッキをシャッフルする回数をユーザーに尋ねます。次に、デッキ上で Shuffle() メソッドを指定された回数呼び出します:
Console.WriteLine("How Many Times Do You Want To Shuffle?"); int numShuffles = int.Parse(Console.ReadLine()); for (int i = 0; i < numShuffles; i++) { mydeck.Shuffle(); }
シャッフルされたカードの表示:
最後に、デッキ内のカードを再度繰り返し、シャッフルされたカードを表示します。 order:
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
これらの手順に従って、ユーザーが希望するシャッフル回数に従ってトランプをシャッフルし、シャッフルされたカードを表示するプログラムを作成できます。
以上がC# でカードの山をランダム化するフィッシャー・イェーツ シャッフルを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。