Maison >développement back-end >C++ >Combien de fois dois-je mélanger mon deck à l'aide de l'algorithme Fisher-Yates en C# ?

Combien de fois dois-je mélanger mon deck à l'aide de l'algorithme Fisher-Yates en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 01:37:39949parcourir

How Many Times Should I Shuffle My Deck Using the Fisher-Yates Algorithm in C#?

Mélange de cartes en C#

En C#, vous pouvez implémenter un algorithme de brassage de cartes à l'aide de la lecture aléatoire Fisher-Yates. Voici comment vous pouvez améliorer votre code pour mélanger le jeu en fonction des entrées de l'utilisateur :

Dans votre Program.cs, ajoutez la logique suivante :

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);
}

Ce code récupère les entrées de l'utilisateur pour le fichier souhaité. nombre de mélanges, puis applique l'algorithme de mélange Fisher-Yates au tableau de cartes du jeu plusieurs fois.

Dans la classe FisherYates, implémentez ce qui suit méthode :

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;
    }
}

Cette méthode prend un tableau d'entiers représentant le jeu de cartes et applique l'algorithme de mélange de Fisher-Yates pour randomiser son ordre.

Une fois le mélange terminé, vous pouvez répertoriez les cartes mélangées en parcourant mydeck.Cards comme vous l'avez fait initialement. Les cartes seront désormais mélangées en fonction du nombre de fois spécifié.

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!

Déclaration:
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