LE PENDU
shareaza15
Messages postés
723
Statut
Membre
-
shareaza15 Messages postés 723 Statut Membre -
shareaza15 Messages postés 723 Statut Membre -
Bonjour, tous le monde
je fais de la programmation en C (enfin j'apprend) sur le site du zero(si vous ne connaissez as je fais la pub www.siteduzero.com) et j'y suis dans un TP ou il faut realiser un jeu de pendu
celui la est pres mais il ne fonctionne qu'avec un seul mot et en essayant de l'ameliorer en lui donnant d'autre mots le compilateur lui n'a rien dit (j'utilise DEV C++) mais lors de l'execution une fenetre me dit qu'il y a une erreur en me proposant d'arreter le programme ou d'annuler le processus alors je croi que je doiis vous donner mon code source genre de chose le voila:
//1. Les Inclusions
#include <stdio.h>
#include <stdlib.h>//Les deux bibliotheques classiques
#include <time.h>//Inclusion de la bibliotheque time pour tirer un nombre au sort
#include <ctype.h>//Inclusion de la bibliotheque ctype pour utiliser getchar et toupper
#include <string.h>//Inclusion de la bibliotheque string pour utiliser strlen strcmp strcpy et strchr
#include "Declarations.h"//On abrege les inclusions dans un seul fichier
int main(int argc, char *argv[])
{
tirerMot();//2. On tire un mot au hasard
lMotSecret = strlen(motSecret);//3. Pour un bon fonctionnement on aplique la longueur du mot sur tout le programme
int i;
for (i = 0; i < lMotSecret; i++)//4. On initialise le mot tapé en etoiles
{
motTape[i] = '*';
}
printf("%s", motTape);
printf("BIENVENUS DANS LE PENDU\n\n");
printf("Le jeu consiste a trouver le mot secret en proposant une lettre a chaque fois\nsans perdre tous les essais en proposant de fausses lettres\nBon Jeu");
while (essais > 0 && !finDuWhile)//La boucle ne s'arretera que lorsqu'on pert ou on gagne
{
printf("\n\nIl vous reste %d coups a jouer", essais);
printf("\nQuel est le mot secret ? : %s", motTape);
printf("\nProposez une lettre : ");
caractere = lireCaractere();//5. on lit le caractere tapé
analyser(caractere);//6. on l'analyse
fin(essais, motTape, motSecret);//7. et on applique les consequences
}
if (essais == 0)
{
printf("\nPerdu ! Le mot secret etait %s\n\n", motSecret);
}
else if (strcmp(motTape, motSecret) == 0)
{
printf("\nBien joue ! le mot secret etait bien %s\n\n", motTape);
}
system("PAUSE");
return 0;
}
void tirerMot()
{
srand(time(NULL));
nombre = (rand() % (MAX - MIN + 1)) + MIN;
if (nombre == 1)
{
strcpy(mot1, motSecret);
}
else if (nombre == 2)
{
strcpy(mot2, motSecret);
}
else if (nombre == 3)
{
strcpy(mot3, motSecret);
}
else if (nombre == 4)
{
strcpy(mot4, motSecret);
}
}
char lireCaractere()
{
caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
// On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
while (getchar() != '\n') ;
return caractere; // On retourne le premier caractère qu'on a lu
}
char analyser(char caractere)
{
int i;
for (i = 0; i < lMotSecret; i++)//on verifie chaque lettre du mot secret
{
if (caractere == motSecret[i])
{
motTape[i] = motSecret[i];
}
}
strchr(motSecret, caractere);//on cherche le caractere dans le mot secret
if (strchr(motSecret, caractere) == NULL)
{
essais --;
}
//les consequences sont appliquées
return 0;
}
void fin()
{
strcmp(motTape, motSecret);//On compare les deux mots
if (strcmp(motTape, motSecret) == 0 || essais == 0 && strcmp(motTape, motSecret) == 0)
{
finDuWhile = 1;//Si on pert ou on gagne la boucle s'arrete
}
}
et voila pour le header (Declarations.h):
int nombre = 0, lMotSecret = 0;
const int MAX = 4, MIN = 1;
char mot1[] = "MARRON", mot2[] = "SECRET";
char mot3[] = "LESECRET", mot4[] = "LESSECRETS", motSecret[30];
int essais = 10, finDuWhile = 0;//Les declarations sont faites tout au debut pour y avoir acces
char caractere, motTape[30];//La declaration du caractere tapé, du mot tapé et du mot secret
void tirerMot();
void fin();
char lireCaractere();//La fonction lireCaractere qui va jouer le role de la scanf
char analyser(char caractere);//La fonction analyser qui va verifier la presence de la lettre dans le mot secret
Merci de votre aide precieuse
je fais de la programmation en C (enfin j'apprend) sur le site du zero(si vous ne connaissez as je fais la pub www.siteduzero.com) et j'y suis dans un TP ou il faut realiser un jeu de pendu
celui la est pres mais il ne fonctionne qu'avec un seul mot et en essayant de l'ameliorer en lui donnant d'autre mots le compilateur lui n'a rien dit (j'utilise DEV C++) mais lors de l'execution une fenetre me dit qu'il y a une erreur en me proposant d'arreter le programme ou d'annuler le processus alors je croi que je doiis vous donner mon code source genre de chose le voila:
//1. Les Inclusions
#include <stdio.h>
#include <stdlib.h>//Les deux bibliotheques classiques
#include <time.h>//Inclusion de la bibliotheque time pour tirer un nombre au sort
#include <ctype.h>//Inclusion de la bibliotheque ctype pour utiliser getchar et toupper
#include <string.h>//Inclusion de la bibliotheque string pour utiliser strlen strcmp strcpy et strchr
#include "Declarations.h"//On abrege les inclusions dans un seul fichier
int main(int argc, char *argv[])
{
tirerMot();//2. On tire un mot au hasard
lMotSecret = strlen(motSecret);//3. Pour un bon fonctionnement on aplique la longueur du mot sur tout le programme
int i;
for (i = 0; i < lMotSecret; i++)//4. On initialise le mot tapé en etoiles
{
motTape[i] = '*';
}
printf("%s", motTape);
printf("BIENVENUS DANS LE PENDU\n\n");
printf("Le jeu consiste a trouver le mot secret en proposant une lettre a chaque fois\nsans perdre tous les essais en proposant de fausses lettres\nBon Jeu");
while (essais > 0 && !finDuWhile)//La boucle ne s'arretera que lorsqu'on pert ou on gagne
{
printf("\n\nIl vous reste %d coups a jouer", essais);
printf("\nQuel est le mot secret ? : %s", motTape);
printf("\nProposez une lettre : ");
caractere = lireCaractere();//5. on lit le caractere tapé
analyser(caractere);//6. on l'analyse
fin(essais, motTape, motSecret);//7. et on applique les consequences
}
if (essais == 0)
{
printf("\nPerdu ! Le mot secret etait %s\n\n", motSecret);
}
else if (strcmp(motTape, motSecret) == 0)
{
printf("\nBien joue ! le mot secret etait bien %s\n\n", motTape);
}
system("PAUSE");
return 0;
}
void tirerMot()
{
srand(time(NULL));
nombre = (rand() % (MAX - MIN + 1)) + MIN;
if (nombre == 1)
{
strcpy(mot1, motSecret);
}
else if (nombre == 2)
{
strcpy(mot2, motSecret);
}
else if (nombre == 3)
{
strcpy(mot3, motSecret);
}
else if (nombre == 4)
{
strcpy(mot4, motSecret);
}
}
char lireCaractere()
{
caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
// On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
while (getchar() != '\n') ;
return caractere; // On retourne le premier caractère qu'on a lu
}
char analyser(char caractere)
{
int i;
for (i = 0; i < lMotSecret; i++)//on verifie chaque lettre du mot secret
{
if (caractere == motSecret[i])
{
motTape[i] = motSecret[i];
}
}
strchr(motSecret, caractere);//on cherche le caractere dans le mot secret
if (strchr(motSecret, caractere) == NULL)
{
essais --;
}
//les consequences sont appliquées
return 0;
}
void fin()
{
strcmp(motTape, motSecret);//On compare les deux mots
if (strcmp(motTape, motSecret) == 0 || essais == 0 && strcmp(motTape, motSecret) == 0)
{
finDuWhile = 1;//Si on pert ou on gagne la boucle s'arrete
}
}
et voila pour le header (Declarations.h):
int nombre = 0, lMotSecret = 0;
const int MAX = 4, MIN = 1;
char mot1[] = "MARRON", mot2[] = "SECRET";
char mot3[] = "LESECRET", mot4[] = "LESSECRETS", motSecret[30];
int essais = 10, finDuWhile = 0;//Les declarations sont faites tout au debut pour y avoir acces
char caractere, motTape[30];//La declaration du caractere tapé, du mot tapé et du mot secret
void tirerMot();
void fin();
char lireCaractere();//La fonction lireCaractere qui va jouer le role de la scanf
char analyser(char caractere);//La fonction analyser qui va verifier la presence de la lettre dans le mot secret
Merci de votre aide precieuse
A voir également:
- LE PENDU
- Jeu du pendu - Télécharger - Vie quotidienne
- Le jeu du pendu - Télécharger - Jeux vidéo