Le mélange des cartes en C#
Le mélange des cartes est un aspect crucial dans les jeux de cartes pour introduire le hasard. Cet article aborde le sujet du mélange de cartes en C#, abordant un scénario spécifique dans lequel vous devez mélanger un jeu de cartes à plusieurs reprises en fonction des entrées de l'utilisateur.
Dans le code fourni, vous avez défini des classes pour représenter un jeu de cartes. , fiches individuelles et énumérations diverses. Pour intégrer la lecture aléatoire des cartes, nous vous suggérons d'utiliser l'algorithme de lecture aléatoire de Fisher-Yates, qui randomise efficacement les éléments d'une collection.
Voici comment ajouter la fonctionnalité de lecture aléatoire de Fisher-Yates à votre code :
Classe d'assistance pour le brassage :
Créez une classe d'assistance statique appelée FisherYates à implémenter l'algorithme de lecture aléatoire.
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; } } }
Application du mélange au deck :
Dans votre classe Program.cs, obtenez le nombre de mélanges souhaités par l'utilisateur et utilisez le Méthode de lecture aléatoire de FisherYates pour mélanger le jeu en conséquence.
int numOfShuffles = int.Parse(Console.ReadLine()); for (int i = 0; i < numOfShuffles; i++) { FisherYates.Shuffle(mydeck.Cards); }
Affichage du jeu mélangé Cartes :
Après le mélange, vous pouvez afficher le jeu de cartes mélangées mis à jour.
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
En tirant parti de l'algorithme de lecture aléatoire de Fisher-Yates, votre programme peut désormais mélanger le jeu de cartes. cartes autant de fois que l'utilisateur le spécifie et affiche le jeu mélangé résultant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!