Maison > développement back-end > C++ > Comment puis-je mélanger efficacement un jeu de cartes plusieurs fois en C# en fonction des entrées de l'utilisateur ?

Comment puis-je mélanger efficacement un jeu de cartes plusieurs fois en C# en fonction des entrées de l'utilisateur ?

Linda Hamilton
Libérer: 2025-01-05 03:55:38
original
459 Les gens l'ont consulté

How Can I Efficiently Shuffle a Deck of Cards Multiple Times in C# Based on User Input?

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;
        }
    }
}
Copier après la connexion

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);
}
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal