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 :

Jeu Du Pendu


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 1
    Par défaut Jeu Du Pendu
    Bonjour à tous , dans le cadre d'un TP, je dois réaliser le jeu du Pendu.Je suis un débutant qui a des bases fragiles donc il m'est compliqué d'arriver au but.Je dois rendre un programme très simple avec que des fonctions de bases.J'ai pour l'instant réussi à créer la fonction qui choisit un mot du dictionnaire aléatoirement.Merci de votre aide


    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
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <time.h>#include <unistd.h> // l"execution du sleep //est réalisée sur une machine UNIX
    char dico[5][30];
    char* choisir_mot()
    {
        srand(time(NULL));
        int valeur_aleatoire=rand()%5;
        return(dico[valeur_aleatoire]);
    }
    int main (void)
    {
        strcpy(dico[0],"clavier");
        strcpy(dico[1],"souris");
        strcpy(dico[2],"ordinateur");
        strcpy(dico[3],"porte");
        strcpy(dico[4],"maison");
        for (int i=0;i<5;i++)
        {
            srand(time(NULL));
            printf("%s\n",choisir_mot());
            sleep(1000);
        }
        return 0;
    }

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 492
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je pense que personne ne fera ton travaille à ta place.

    J'ai déjà bien du mal à voir ce que fait ton programme... Pourquoi faire des sleep déjà ?

    Il faut que tu commences par écrire la logique du programme en français. Après tu essayes de traduire en C. Il te faut quelque chose comme :
    1. choisir un mot du dictionnaire
    2. créer une chaine de même longueur avec des tirets
    3. afficher cette nouvelle chaine
    4. demander une lettre à l'utilisateur
    5. regarder si cette lettre fait partie du mot
    6. mettre à jour la chaine avec les tirets et recommencer en 3 tant que toutes les lettres n'ont pas été trouvées


    Tu peux déjà simplifier l'étape en n'ayant pas de dictionnaire mais en recompilant ton programme si tu veux changer le mot à trouver.

    Après, il faut trouver les fonctions C qui vont bien. Par exemple :
    Pour 2 : voir puts() http://manpagesfr.free.fr/man/man3/puts.3.html
    Pour 3 : voir getchar() http://manpagesfr.free.fr/man/man3/gets.3.html

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par scouser29 Voir le message
    Citation Envoyé par Bktero Voir le message
    6. mettre à jour la chaine avec les tirets et recommencer en 3 tant que toutes les lettres n'ont pas été trouvées...
    ...ou jusqu'à ce que le nombre maximum d'essais autorisé ai été atteint.

    Pour info le srand(time(NULL)) ne se fait qu'une fois (il sert à initialiser le générateur aléatoire et comme "initialiser" = "à ne faire qu'une fois"...). Et les variables globales sont une fausse "bonne idée" car dans 99% des cas, elles soulèvent plus de problèmes qu'elles en résolvent.
    Et comme Bktero, tes sleep() m'intriguent un peu...

    Pourquoi tu n'initialises pas ton dico de cette façon
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    char *dico[5]={ "clavier", "souris", "ordinateur", "porte", "maison"};
    ? Parce que définir un tableau de 5 zones de 30 char ça n'est utile que si tu dois ensuite modifier son contenu ; ce qui n'est pas le cas ici puisque tu te contentes juste de récupérer/afficher le mot.
    Ceci dit, même cette solution est assez faible. Le must serait que tu récupères ton mot dans un fichier de config ce qui te permettrait de rendre indépendant ton code et les données qu'il doit traiter...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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. Jeu Bonhomme pendu
    Par yinyann86 dans le forum Delphi
    Réponses: 11
    Dernier message: 14/11/2006, 17h03
  3. Le jeu du pendu.
    Par giggs dans le forum C
    Réponses: 5
    Dernier message: 31/10/2006, 13h40
  4. jeu du pendu
    Par krachik dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2006, 12h48
  5. Réponses: 4
    Dernier message: 24/03/2006, 13h54

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