Mengkocok Kad dalam C#
Mengkocok kad ialah aspek penting dalam permainan kad untuk memperkenalkan kerawanan. Artikel ini menyelidiki topik rombak kad dalam C#, menangani senario tertentu di mana anda perlu mengocok dek berulang kali berdasarkan input pengguna.
Dalam kod yang disediakan, anda telah menentukan kelas untuk mewakili dek kad. , kad individu dan pelbagai penghitungan. Untuk menggabungkan shuffle kad, kami cadangkan menggunakan algoritma shuffle Fisher-Yates, yang secara efisien merawak unsur-unsur dalam koleksi.
Begini cara anda boleh menambahkan fungsi shuffle Fisher-Yates pada kod anda:
Kelas Pembantu untuk Kocok:
Buat kelas pembantu statik yang dipanggil FisherYates untuk melaksanakan algoritma shuffle.
static public class FisherYates { static Random r = new Random(); 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; } } }
Memohon Kocok pada Dek:
Dalam kelas Program.cs anda, dapatkan bilangan shuffle yang pengguna inginkan dan gunakan Kaedah kocok FisherYates untuk mengocok dek dengan sewajarnya.
int numOfShuffles = int.Parse(Console.ReadLine()); for (int i = 0; i < numOfShuffles; i++) { FisherYates.Shuffle(mydeck.Cards); }
Memaparkan Kad Kocok:
Selepas mengocok, anda boleh memaparkan dek kad kocok yang dikemas kini.
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
Dengan memanfaatkan Fisher-Yates algoritma shuffle, program anda kini boleh mengocok dek kad seberapa banyak kali yang pengguna tentukan dan memaparkan dek kocok yang terhasil.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kocok Dek Kad Berbilang Kali dengan Cekap dalam C# Berdasarkan Input Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!