Pengocokan Kad dalam C#
Dalam C#, anda boleh melaksanakan algoritma mengocok kad menggunakan Fisher-Yates shuffle. Begini cara anda boleh meningkatkan kod anda untuk mengocok dek berdasarkan input pengguna:
Dalam Program.cs anda, tambah logik berikut:
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); }
Kod ini mendapatkan semula input pengguna untuk yang dikehendaki bilangan shuffle dan kemudian menggunakan algoritma shuffle Fisher-Yates pada berbilang susunan Kad dek kali.
Dalam kelas FisherYates, laksanakan kaedah berikut:
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; } }
Kaedah ini mengambil tatasusunan integer yang mewakili dek kad dan menggunakan algoritma shuffle Fisher-Yates untuk merawaknya pesanan.
Setelah kocok selesai, anda boleh menyenaraikan kad yang dikocok dengan mengulangi mydeck.Kad seperti yang anda lakukan pada mulanya. Kad kini akan dikocok berdasarkan bilangan kali yang ditentukan.
Atas ialah kandungan terperinci Berapa Kali Harus Saya Kocok Dek Saya Menggunakan Algoritma Fisher-Yates dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!