Besoin d'aide sur l 'option while

Fermé
babaamour Messages postés 3 Date d'inscription samedi 27 février 2021 Statut Membre Dernière intervention 27 février 2021 - Modifié le 4 mars 2021 à 15:38
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 4 mars 2021 à 14:33
Bonjour,
je suis débutant dans la programmation et je viens de commencer d'apprendre le C# .
je suis entrain de crié une petite jeu de dés voila ;
les règles de jeu est :
-Il faut avoir 2 a 5 joueurs
-Chaque joueur doit lancer deux des de 6 faces.
-Le gagnant qui aura le plus haut scores(peut y avoir plusieurs gagnants.)

voila mon code est ce que il y a quelque parmi vous peux me valider et m explique comment ajouter cette option exigence
.(on doit cependant valider que chaque réponse entrée est à l'intérieur des réponses possibles, sinon le programme doit répéter la question jusqu'à ce qu'une réponse valide soit obtenue.) .

using System;

namespace Jeu_de_dé
{ }
class Program
{
    static void Main(string[] args)
    {
        //Le nom de créateur.
        String monNom = "Baba Amour";
        Console.WriteLine($"Jeu crié par { monNom} \n");

        // Afficher le nom de jeu  en tant que jeu de des 

        Console.WriteLine($"Jeu de des\n");

        //Discription la régle de jeu.

        Console.WriteLine("les régles de jeu est :\n");
        Console.WriteLine("\t1-Il faut avoir 2 a 5 joueurs.");
        Console.WriteLine("\t2-Chaque joueur doit lancer deux des de 6 faces.");
        Console.WriteLine("\t3-Le gagnant qui aura le plus haut scors(peut y avoir plusieurs gagnants.:\n");

        Random rnd = new Random();
        int nbMaxJoueurs = 5;
        int[] score = new int[nbMaxJoueurs];
        string reponse;
        const int nbDesMin = 1;
        const int nbDesMax = 7;
        int grandScore = score[0];
        int nbJoueurs;

        Console.Write("Appuyer sur une touche pour jouer..\n");
        Console.ReadKey();
        do
        {
            // Demande  a l'utilisateur combien de joueur 
            Console.WriteLine("Choisez le nombre des joueurs :\n");
            nbJoueurs = Convert.ToInt32(Console.ReadLine());
        
            if (nbJoueurs <= nbMaxJoueurs && nbJoueurs > 1)
            {
                Console.WriteLine("commencer le jeu:\n");
                for (int i = 0; i < nbJoueurs; i++)
                {
                    Console.WriteLine($" joueur {i + 1} appuyer sur une touche pour lancer les deux dés");
                    Console.ReadLine();
                    int nbAleatoire1 = rnd.Next(nbDesMin, nbDesMax);
                    int nbAleatoire2 = rnd.Next(nbDesMin, nbDesMax);
                    Console.WriteLine($"le resultat de 1 er dés est: { nbAleatoire1}, le resultat de 2 eme dés est:{ nbAleatoire2} alors la somme de deux dés est: {score[i] = (nbAleatoire1 + nbAleatoire2)}\n");
                    if (score[i] > grandScore)
                    {
                        grandScore = score[i];
                    }
                }

                for (int i = 0; i < nbJoueurs; i++)
                {

                    if (score[i] >= grandScore)
                    {

                        Console.WriteLine($"Joueur {i + 1} est le gaganer");
                    }
                }
            }
            Console.Write("Voulez-vous recommencer (o/n) ? ");
            reponse = Console.ReadLine();
        } while (reponse == "o");
    }
}



Configuration: Windows / Chrome 88.0.4324.182

4 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
27 févr. 2021 à 10:12
bonjour,
peux-tu utiliser les balises de code quand tu partages du code? explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

A quelle ligne de code penses-tu qu'il faut ajouter la validation de la réponse?
0
babaamour Messages postés 3 Date d'inscription samedi 27 février 2021 Statut Membre Dernière intervention 27 février 2021
27 févr. 2021 à 16:41
Bonjour

je pense que il faut ajouter la validation de la réponse quand le programme pause la question choisez le nombre de joueur . si le joueur entre un nombre invalide de notre règle je veux que le programme répète le même question jusqu'à la réponse être valide et le programme passe a l'étape suivante .

using System;

namespace Jeu_de_dé
{ }
class Program
{
static void Main(string[] args)
{
//Le nom de créateur.
String monNom = "Baba Amour";
Console.WriteLine($"Jeu crié par { monNom} \n");

// Afficher le nom de jeu en tant que jeu de des

Console.WriteLine($"Jeu de des\n");

//Discription la régle de jeu.

Console.WriteLine("les régles de jeu est :\n");
Console.WriteLine("\t1-Il faut avoir 2 a 5 joueurs.");
Console.WriteLine("\t2-Chaque joueur doit lancer deux des de 6 faces.");
Console.WriteLine("\t3-Le gagnant qui aura le plus haut scors(peut y avoir plusieurs gagnants.:\n");

Random rnd = new Random();
int nbMaxJoueurs = 5;
int[] score = new int[nbMaxJoueurs];
string reponse;
const int nbDesMin = 1;
const int nbDesMax = 7;
int grandScore = score[0];
int nbJoueurs;

Console.Write("Appuyer sur une touche pour jouer..\n");
Console.ReadKey();
do
{
// Demande a l'utilisateur combien de joueur
Console.WriteLine("Choisez le nombre des joueurs :\n");
nbJoueurs = Convert.ToInt32(Console.ReadLine());

if (nbJoueurs <= nbMaxJoueurs && nbJoueurs > 1)
{
Console.WriteLine("commencer le jeu:\n");
for (int i = 0; i < nbJoueurs; i++)
{
Console.WriteLine($" joueur {i + 1} appuyer sur une touche pour lancer les deux dés");
Console.ReadLine();
int nbAleatoire1 = rnd.Next(nbDesMin, nbDesMax);
int nbAleatoire2 = rnd.Next(nbDesMin, nbDesMax);
Console.WriteLine($"le resultat de 1 er dés est: { nbAleatoire1}, le resultat de 2 eme dés est:{ nbAleatoire2} alors la somme de deux dés est: {score[i] = (nbAleatoire1 + nbAleatoire2)}\n");
if (score[i] > grandScore)
{
grandScore = score[i];
}
}

for (int i = 0; i < nbJoueurs; i++)
{

if (score[i] >= grandScore)
{

Console.WriteLine($"Joueur {i + 1} est le gaganer");
}
}
}
Console.Write("Voulez-vous recommencer (o/n) ? ");
reponse = Console.ReadLine();
} while (reponse == "o");
}
}
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
27 févr. 2021 à 17:07
A quelle ligne de code penses-tu qu'il faut ajouter la validation de la réponse?
0
babaamour Messages postés 3 Date d'inscription samedi 27 février 2021 Statut Membre Dernière intervention 27 février 2021
27 févr. 2021 à 17:10
je crois ligne 38 car la bas il faut répéter la question jusqu'à la réponse soit valide .
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
27 févr. 2021 à 17:19
je suggère, pour te préparer, de faire un petit programme tout simple:
poser plusieurs fois la même question, jusqu'à obtenir la réponse attendue.
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
4 mars 2021 à 14:33
Bonjour,

Quand tu as séquence à refaire, il faut identifier qu'est ce que tu veux refaire. Ici ce sont les lignes 38 et 39.
Pour les séquences à refaire, il faut indiquer le début, la fin, et bien sûr avoir une condition pour recommencer. Tu as dû apprendre les 3 grandes sortes de boucles :
do {
    // séquences des choses à faire et refaire
} while ( condition_pour_recommencer );

while ( condition_pour_commencer_et_recommencer ) {
    // séquences des choses à faire et refaire
}

for ( que_faire_pour_parcourir_les_possibilites ) {
    // séquences des choses à faire et refaire
}

Fais ton choix, et place ces critères de début et de fin aux bon endroits avec le bon critère.
0