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
Libérer: 2025-01-05 01:37:39
original
955 Les gens l'ont consulté

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

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

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