用 C# 洗牌
建立一個可以洗牌的程式需要實作洗牌演算法。 Fisher-Yates 洗牌演算法是一種廣泛使用的技術,可確保給定清單的隨機排列。
要在C# 中實作此演算法,請考慮以下步驟:
建立Fisher-Yates Shuffle 類別:
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 是代表卡片的整數陣列。
r 是使用的 Random 物件產生隨機索引。
public void Shuffle() { FisherYates.Shuffle(cards); }演算法從迭代中的最後一個元素開始
交換索引 n 和 k 處的值以實現隨機排列。
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(); }
在你的Deck 類別中,建立一個方法來呼叫卡片數組(卡片)上的FisherYates.Shuffle()方法:
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
以上是如何在 C# 中實現 Fisher-Yates 洗牌來隨機化一副牌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!