C# でのカード シャッフル
C# では、Fisher-Yates シャッフルを使用してカード シャッフル アルゴリズムを実装できます。ユーザー入力に基づいてデッキをシャッフルするようにコードを拡張する方法は次のとおりです。
Program.cs に次のロジックを追加します。
int timesToShuffle; Console.WriteLine("How many times do you want to shuffle?"); timesToShuffle = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < timesToShuffle; i++) { FisherYates.Shuffle(mydeck.Cards); }
このコードは、目的のユーザー入力を取得します。シャッフルの回数を指定してから、フィッシャー・イェーツのシャッフル アルゴリズムをデッキの Cards 配列に複数回適用します。
FisherYates クラスでは、次のメソッドを実装します。
public static 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; } }
このメソッドは、カードのデッキを表す整数の配列を受け取り、フィッシャー・イェーツのシャッフル アルゴリズムを適用して順序をランダム化します。
シャッフルが完了したら, 最初に行ったように mydeck.Cards を反復処理することで、シャッフルされたカードをリストできます。指定された回数に基づいてカードがシャッフルされます。
以上がC# の Fisher-Yates アルゴリズムを使用してデッキを何回シャッフルする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。