IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Erreur de code-jeu du pendu [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 34
    Points : 18
    Points
    18
    Par défaut Erreur de code-jeu du pendu
    Bonjour, bonsoir, j'ai fais un petit bout de code pour réaliser un jeu de pendu, mais mon code à une erreur et je ne sais absolument pas d'ou ca vient

    Mon code me retourne uniquement sur la console uniquement ces lignes là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.Console.Write("Il vous reste " + vie + " essais");
     afficherEtat(MotVerTab(mot), trouve);
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
     
     
    namespace jeu_pendu_liste
    {
        class Program
        {
            static List<string> chargerFichier(string nomFichier)
            {
                List<string> listeMots = new List<string>();
                StreamReader flux = new StreamReader(nomFichier);
                String ligne = flux.ReadLine();
                while(ligne!=null)
                {
                    listeMots.Add(ligne);
                    ligne=flux.ReadLine();
                }
                flux.Close();
                return listeMots;
            }
            static string proposerMot()
            {
                List<string> tm = chargerFichier("listemots.txt");
                Random alea = new Random();
                return tm[alea.Next(0,tm.Count-1)].ToLower();
            }
            static void afficherEtat(List<char> mot, List<bool> trouve)
            {
                for (int i = 0; i < trouve.Count; i++)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    if (trouve[i] == false)
                        System.Console.Write("?");
                    else
                        System.Console.Write(mot[i]);
                    Console.ResetColor();
                }
                System.Console.WriteLine();
                System.Console.WriteLine();
            }
            static void iniTrouve(List<bool> trouve)
            {
                for (int i = 0; i < trouve.Count; i++)
                {
                    trouve[i] = false;
                }
            }
            static List<bool> MetAJour(List<char> mot, List<bool> trouve, char c)
            {
                for (int i = 0; i < trouve.Count; i++)
                {
                    if (mot[i] == c)
                    {
                        trouve[i] = true;
                    }
                }
                return trouve;
            }
            static Boolean partieFinie(List<bool> trouve)
            {
                bool ok = true;
                for (int i = 0; i < trouve.Count; i++)
                {
                    if (trouve[i] != true)
                    {
                        ok = false;
                    }
                }
                return ok;
            }
            static Boolean existe(List<char> mot, char c)
            {
                bool ok = false;
                for (int i = 0; i < mot.Count; i++)
                {
                    if (mot[i] == c)
                    {
                        ok = true;
                    }
                }
                return ok;
            }
            static void partie(string mot)
            {
                List<bool> trouve = new List<bool>();
                iniTrouve(trouve);
                int vie = 6;
                while (partieFinie(trouve) == false && vie != 0)
                {
                    System.Console.WriteLine("entrer une lettre : ");
                    char c = System.Console.ReadLine().ToCharArray()[0];
                    trouve = (MetAJour(MotVerTab(mot), trouve, c));
                    if (!existe(MotVerTab(mot), c))
                    {
                        vie--;
                    }
                    System.Console.Write("Il vous reste " + vie + " essais");
                    afficherEtat(MotVerTab(mot), trouve);
                }
                Console.ForegroundColor=ConsoleColor.Green;
                if(partieFinie(trouve)==true)
                {
                    System.Console.Write("vous avez gagné avec "+ vie +" point de vie");
                    System.Console.Write(" le mot etait : "+mot);
                }
                if(vie==0)
                {
                    System.Console.Write("Vous avez perdu,le mot etait: "+mot);
                }
            }
            static List<char> MotVerTab(string s)
            {
                return s.ToList<char>();
            }
            static void Main(string[] args)
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                System.Console.WriteLine("JEU DU PENDU");
                string mot = proposerMot();
                Console.ResetColor();
                List<char> tabMot = MotVerTab(mot);
                List<bool> trouve = new List<bool>();
                partie(mot);
                System.Console.ReadKey();
            }
        }
    }
    voilà, merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    trouve est vide, donc sur le while tu sorts direct. Suit avec le deboggeur.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Merci ! ,il faudrait que j'initalise "trouve" comme étant égale à la valeur "mot" à l'interieur de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static void iniTrouve(List<bool> trouve)
            {
                for (int i = 0; i < trouve.Count; i++)
                {
                    trouve[i] = false;
                }
            }
    Le probleme c'est que je vois pas trop comment faire...

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            static void iniTrouve(List<bool> trouve, int nb)
            {
                for (int i = 0; i < nb; i++)
                {
                    trouve.Add(false);
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            static void partie(string mot)
            {
                List<bool> trouve = new List<bool>();
                iniTrouve(trouve, MotVerTab(mot).Count );
                int vie = 6;
                while (partieFinie(trouve) == false && vie != 0)
    // ... suite du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            static void Main(string[] args)
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                System.Console.WriteLine("JEU DU PENDU");
                Console.ResetColor();
                partie(proposerMot());
                System.Console.ReadKey();
            }
    J'éspère ne rien avoir oublié.
    Tu as le principe.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup , je savais pas qu'on pouvait mettre un .Count en paramètre d'une fonctions !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Avant de clore le topic, je voulais savoir,quel est la différence entre ==false et .Add(false) ?

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    De rien,
    Ce n'est pas un paramètre, la méthode renvoyant un élément d'un certain type, j'exploite simplement la propriété count de cet élément.
    Pense à mettre en résolu si cela fonctionne.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par jocelyn77 Voir le message
    Avant de clore le topic, je voulais savoir,quel est la différence entre ==false et .Add(false) ?
    lorsque tu utilises le == false tu affectes la valeur false à un élément existant (à la position que tu spécifies, donc il existe déjà)
    Avec .Add(false) tu ajoutes un élément à ta liste qui a la valeur false. Tu auras un élément de plus dans ta liste.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code en bourne shell du jeu Le "PENDU"
    Par piment dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 20/07/2007, 14h17
  2. Erreur : ce code n'est pas connu
    Par ruman dans le forum VBA Access
    Réponses: 17
    Dernier message: 13/02/2006, 11h37
  3. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 22h16
  4. Bout de code - Jeu
    Par GO dans le forum Langage
    Réponses: 1
    Dernier message: 29/01/2006, 19h33
  5. Erreur de code
    Par petdelascar dans le forum C
    Réponses: 7
    Dernier message: 12/12/2005, 08h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo