C# 中的洗牌
在 C# 中,您可以使用 Fisher-Yates shuffle 實現洗牌演算法。以下是如何增強程式碼以根據使用者輸入洗牌:
在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); }
此程式碼擷取所需的使用者輸入洗牌次數,然後將Fisher-Yates 洗牌演算法多次套用於牌組的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; } }
此方法採用代表一副牌的整數數組,並應用 Fisher-Yates 洗牌演算法來隨機化其順序。
洗牌完成後,您可以像最初一樣透過迭代 mydeck.Cards 來列出洗過的牌。現在將依照指定的次數洗牌。
以上是我應該使用 C# 中的 Fisher-Yates 演算法洗牌多少次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!