Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Kocok Fisher-Yates untuk Merawak Dek Kad dalam C#?
Mengkocok Dek Kad dalam C#
Mencipta program yang boleh mengocok dek kad memerlukan pelaksanaan algoritma kocok. Algoritma shuffle Fisher-Yates ialah teknik yang digunakan secara meluas yang memastikan pilih atur rawak senarai tertentu.
Untuk melaksanakan algoritma ini dalam C#, pertimbangkan langkah berikut:
Mencipta Kelas Kocok Fisher-Yates:
Tentukan kelas statik yang dipanggil FisherYates yang mengandungi kaedah berikut:
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; } }
Dalam kaedah ini:
Mengocok Dek:
Dalam kelas Dek anda, cipta kaedah untuk memanggil kaedah FisherYates.Shuffle() pada susunan kad (kad):
public void Shuffle() { FisherYates.Shuffle(cards); }
Mengemaskini Program:
Dalam kaedah Utama() kelas Program anda, selepas dipaparkan senarai awal kad, minta pengguna untuk bilangan kali mereka mahu mengocok dek. Kemudian, panggil kaedah Shuffle() pada dek bilangan kali yang ditentukan:
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(); }
Memaparkan Kad Kocok:
Akhir sekali , ulangi kad dalam dek sekali lagi dan paparkan yang dikocok pesanan:
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
Dengan mengikuti langkah ini, anda boleh mencipta program yang boleh mengocok dek kad mengikut bilangan kocok yang dikehendaki pengguna dan memaparkan kad yang dikocok.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kocok Fisher-Yates untuk Merawak Dek Kad dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!