-
1 pièce(s) jointe(s)
Jeu du pendu
je suis un débutant en programmation et j'ai besoin d'aide pour la résolution d'un programme en C.
Je vous présente l'exercice :
"Un jeu, nommé le pendu, consiste à deviner un mot en un certain nombre d'essais. Pour informatiser ce jeu nous avons besoin d'un tableau contenant les mots à deviner. Voici la stratégie que nous avons adoptée.
Les mots à deviner sont situés dans trois tableaux correspondant à des catégories. Les catégories sont: sports (tableau sports), musique (tableau musique) et pays (tableau pays). Chaque tableau contiendra entre 10.
Le programme demande la catégorie désirée. On détermine aléatoirement l’indice du tableau à l'aide de la fonction rand(). Le programme affiche un nombre de traits correspondant aux nombres de lettres du mot.
Le joueur doit deviner le mot que l'ordinateur a choisi. Pour ce faire, le joueur précise une lettre de l'alphabet. Chaque occurrence de la lettre est affichée à son emplacement dans le mot si le joueur a deviné la lettre. Si la lettre ne fait pas partie du mot, le joueur commet une faute et un message l'informe du verdict. Un joueur peut commettre un maximum de 5 fautes par mot. À la cinquième faute, il perd la partie et se fait "pendre". Le joueur peut préciser le caractère "*" indiquant qu'il a deviné le mot. L'ordinateur l'invite ensuite à proposer un mot. S'il s'agit du bon mot, le joueur gagne. Par contre, s'il ne s'agit pas du bon mot, le joueur perd aussitôt la partie. Lorsque le joueur trouve le mot, c'est-à-dire qu'il a deviné toutes les lettres du mot sans commettre 5 fautes, un message de félicitations lui est adressé. Le jeu se poursuit tant que le joueur désire deviner un nouveau mot.
Une fois que le joueur ne désire plus deviner de mot (en tapant le ?), les statistiques suivantes sont affichées : le pourcentage de mots devinés par rapport au nombre de mots à deviner;
Pour les mots que le joueur a réussi à deviner:
le plus grand nombre d’essais utilisés pour deviner un mot; le plus petit nombre d’essais utilisés pour deviner un mot; le nombre moyen d’essais utilisés pour deviner les mots.
N.B. La longueur maximale d'un mot est de 25 caractères.
Un essai correspond à entrer une lettre pour deviner le mot. Les caractères * et ? ne sont pas comptés comme un essai. Une faute correspond à un essai dont la lettre n’est pas dans le mot.
La fonction rand(), du fichier d’en-tête <stdlib.h>, retourne un entier compris entre 0 et 32767.
La fonction rand() nécessite un appel unique à la fonction srand() qui correspond à introduire un germe dans le générateur de nombre pseudo-aléatoire. La fonction srand() sollicite l’horloge de l’ordinateur, il faut donc ajouter l’inclusion du fichier <time.h>. Voici un bref exemple d’utilisation obtenu de l’aide de Visual C++. "
Merci pour votre attention!
-
Plus précisément tu as besoin d'aide sur quoi ? Parce que tu ne t'attends pas à ce qu'on fasse l'exercice à ta place n'est-ce pas ?
En général on essaye d'écrire un algorithme et on pose des questions sur les parties qu'on n'arrive pas à formuler, puis on essaye d'écrire le code et on pose des questions sur les points précis qui nous sont problématique.
-
J'ai lu le code donné avec ton message.
En première analyse, sans même entrer dans le fond du sujet, tu as beaucoup d'erreurs de syntaxe et certaines fonctions ne sont peut-être pas judicieusement choisies ! 8O
Je te suggère notamment de te pencher sur les fonctions printf, getch, getchar, et de revoir la méthode d'initialisation de tes structures.
Enfin, rappelle-toi que si une fonction est déclarée en int, il faut que cette fonction retourne effectivement un int, sinon, si tu n'attends pas de valeur en retour, déclare-la en void ! :?
Bon courage !