Des erreurs...
Koda94
Messages postés
7
Statut
Membre
-
Koda94 Messages postés 7 Statut Membre -
Koda94 Messages postés 7 Statut Membre -
Bonjour,
J'ai réalisé un jeu de Pendu 1 ou 2 joueurs avec un menu. Mais j'ai des erreurs qui m'empêchent de le faire fonctionner. J'ai besoin d'aide !
PS : J'ai mis en gras les lignes incriminées
Merci
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "dictionnaire.h"
#define VRAI 1
#define FAUX 0
#define NBC 30
int affichageMenu(void)
{
int choixMenu;
printf("********Bonjour, Bienvenue dans Pendu 2.0 !********\n\n");
printf("Avant tout, souhaitez-vous faire une partie:\n\n");
printf("En solitaire, Tapez 1\n");
printf("A deux Joueurs, Tapez 2\n\n");
printf("\nVotre choix?\n\n");
scanf("%d", &choixMenu);
return choixMenu;
}
int main(void)
{
switch (affichageMenu())
{
case 1:
int main (void); a label can only be part of a statement
and a declaration is not a statement
{
int nb_lettres;
char mot [NBC];
char masque [NBC];
char lettre ;
int nbcoups,j;
int trouve;
printf("Entrez un mot : ");
scanf("%s", mot);
nb_lettres = strlen(mot);
j = 0;
while (j < nb_lettres)
{
masque[j] = '*';
j++;
}
masque[j] = '\0';
system("cls");
printf("%s", masque);
trouve = FAUX;
nbcoups = 0;
while ((nbcoups < 10) && !trouve){
printf ("\ncaractere ? ");
scanf (" %c", &lettre);
j = 0;
while ((j < nb_lettres) && !trouve) {
if (mot[j] == lettre) {
masque[j]=lettre;
if (strchr(masque,'*') == NULL)
trouve = VRAI;
}
j++;
}
printf("%s", masque);
nbcoups++;
}
if (!trouve)
printf("\nVOUS AVEZ PERDU\n");
else
printf("\nVOUS AVEZ GAGNE\n");
return 0
} expected ; before '}' token error
break;
case 2:
int choisirMot(char *mot)
{ expected ; before '}' token error
FILE* dictionnaire = NULL;
int nbMot = 0, numMotChoisi = 0, i = 0;
int nblettre = 0;
dictionnaire = fopen("dictionnaire.txt", "r");
if (dictionnaire == NULL)
{
printf("\nL'ouverture du dictionnaire a echouee");
return 0;
}
do
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
nbMot++;
} while(nblettre != EOF);
int nombreAleatoire(int nombreMax)
{
srand(time(NULL));
return (rand() % nombreMax);
}
numMotChoisi = nombreAleatoire(nbMot);
rewind(dictionnaire);
while (numMotChoisi > 0)
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
numMotChoisi--;
}
fgets(mot, 100, dictionnaire);
mot[strlen(mot) - 1] = '\0';
fclose(dictionnaire);
return 1;
}
int gagner(int lettreTrouvee[], long longueurMot);
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[]);
char lireCaractere();
int main(int argc, char* argv[])
{
char lettre = 0;
char motATrouver[100] = {0};
int *lettreDecouverte = NULL;
long coupsRestants = 10;
long i = 0;
long longueurMot = 0;
printf("Bienvenue dans le Pendu !\n\n");
if (!choisirMot(motATrouver))
exit(0);
longueurMot = strlen(motATrouver);
lettreDecouverte = malloc(longueurMot * sizeof(int));
if (lettreDecouverte == NULL)
exit(0);
for (i = 0 ; i < longueurMot ; i++)
lettreDecouverte[i] = 0;
while (coupsRestants > 0 && !gagne(lettreDecouverte, longueurMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i])
printf("%c", motATrouver[i]);
else
printf("*");
}
printf("\nProposez une lettre : ");
lettre = lireCaractere();
if (!rechercheLettre(lettre, motATrouver, lettreDecouverte))
{
coupsRestants--;
}
}
if (gagne(lettreDecouverte, longueurMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motATrouver);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motATrouver);
free(lettreDecouverte);
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
int gagne(int lettreDecouverte[], long longueurMot)
{
long i = 0;
int joueurGagne = 1;
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i] == 0)
joueurGagne = 0;
}
return joueurGagne;
}
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[])
{
long i = 0;
int bonneLettre = 0;
for (i = 0 ; motATrouver[i] != '\0' ; i++)
{
if (lettre == motATrouver[i])
{
bonneLettre = 1;
lettreDecouverte[i] = 1;
}
}
return bonneLettre;
}
break;
default:
printf("Vous ne ferez rien du tout!");
break;
}
system("PAUSE");
return 0;
}
J'ai réalisé un jeu de Pendu 1 ou 2 joueurs avec un menu. Mais j'ai des erreurs qui m'empêchent de le faire fonctionner. J'ai besoin d'aide !
PS : J'ai mis en gras les lignes incriminées
Merci
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "dictionnaire.h"
#define VRAI 1
#define FAUX 0
#define NBC 30
int affichageMenu(void)
{
int choixMenu;
printf("********Bonjour, Bienvenue dans Pendu 2.0 !********\n\n");
printf("Avant tout, souhaitez-vous faire une partie:\n\n");
printf("En solitaire, Tapez 1\n");
printf("A deux Joueurs, Tapez 2\n\n");
printf("\nVotre choix?\n\n");
scanf("%d", &choixMenu);
return choixMenu;
}
int main(void)
{
switch (affichageMenu())
{
case 1:
int main (void); a label can only be part of a statement
and a declaration is not a statement
{
int nb_lettres;
char mot [NBC];
char masque [NBC];
char lettre ;
int nbcoups,j;
int trouve;
printf("Entrez un mot : ");
scanf("%s", mot);
nb_lettres = strlen(mot);
j = 0;
while (j < nb_lettres)
{
masque[j] = '*';
j++;
}
masque[j] = '\0';
system("cls");
printf("%s", masque);
trouve = FAUX;
nbcoups = 0;
while ((nbcoups < 10) && !trouve){
printf ("\ncaractere ? ");
scanf (" %c", &lettre);
j = 0;
while ((j < nb_lettres) && !trouve) {
if (mot[j] == lettre) {
masque[j]=lettre;
if (strchr(masque,'*') == NULL)
trouve = VRAI;
}
j++;
}
printf("%s", masque);
nbcoups++;
}
if (!trouve)
printf("\nVOUS AVEZ PERDU\n");
else
printf("\nVOUS AVEZ GAGNE\n");
return 0
} expected ; before '}' token error
break;
case 2:
int choisirMot(char *mot)
{ expected ; before '}' token error
FILE* dictionnaire = NULL;
int nbMot = 0, numMotChoisi = 0, i = 0;
int nblettre = 0;
dictionnaire = fopen("dictionnaire.txt", "r");
if (dictionnaire == NULL)
{
printf("\nL'ouverture du dictionnaire a echouee");
return 0;
}
do
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
nbMot++;
} while(nblettre != EOF);
int nombreAleatoire(int nombreMax)
{
srand(time(NULL));
return (rand() % nombreMax);
}
numMotChoisi = nombreAleatoire(nbMot);
rewind(dictionnaire);
while (numMotChoisi > 0)
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
numMotChoisi--;
}
fgets(mot, 100, dictionnaire);
mot[strlen(mot) - 1] = '\0';
fclose(dictionnaire);
return 1;
}
int gagner(int lettreTrouvee[], long longueurMot);
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[]);
char lireCaractere();
int main(int argc, char* argv[])
{
char lettre = 0;
char motATrouver[100] = {0};
int *lettreDecouverte = NULL;
long coupsRestants = 10;
long i = 0;
long longueurMot = 0;
printf("Bienvenue dans le Pendu !\n\n");
if (!choisirMot(motATrouver))
exit(0);
longueurMot = strlen(motATrouver);
lettreDecouverte = malloc(longueurMot * sizeof(int));
if (lettreDecouverte == NULL)
exit(0);
for (i = 0 ; i < longueurMot ; i++)
lettreDecouverte[i] = 0;
while (coupsRestants > 0 && !gagne(lettreDecouverte, longueurMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i])
printf("%c", motATrouver[i]);
else
printf("*");
}
printf("\nProposez une lettre : ");
lettre = lireCaractere();
if (!rechercheLettre(lettre, motATrouver, lettreDecouverte))
{
coupsRestants--;
}
}
if (gagne(lettreDecouverte, longueurMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motATrouver);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motATrouver);
free(lettreDecouverte);
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
int gagne(int lettreDecouverte[], long longueurMot)
{
long i = 0;
int joueurGagne = 1;
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i] == 0)
joueurGagne = 0;
}
return joueurGagne;
}
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[])
{
long i = 0;
int bonneLettre = 0;
for (i = 0 ; motATrouver[i] != '\0' ; i++)
{
if (lettre == motATrouver[i])
{
bonneLettre = 1;
lettreDecouverte[i] = 1;
}
}
return bonneLettre;
}
break;
default:
printf("Vous ne ferez rien du tout!");
break;
}
system("PAUSE");
return 0;
}
A voir également:
- Des erreurs...
- Net user des erreurs ont affecté l'exécution de la commande - Forum Windows
- Freebox erreur impossible de récupérer la liste des mises à jour - Forum Freebox
- Redémarrer pour réparer les erreurs de lecteur - Forum Windows 8 / 8.1
- Freebox erreur impossible de récupérer la liste de - Forum Réseaux sociaux
- Erreur de chargement des données vod - Forum Box et Streaming vidéo
2 réponses
Je l'ai bidouillé un petit peu mais il me reste 2 erreurs : static declaration follows non-static declaration.
Pourquoi ?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "dictionnaire.h"
#define VRAI 1
#define FAUX 0
#define NBC 30
int affichageMenu(void)
{
int choixMenu;
printf("********Bonjour, Bienvenue dans Pendu 2.0 !********\n\n");
printf("Avant tout, souhaitez-vous faire une partie:\n\n");
printf("En solitaire, Tapez 1\n");
printf("A deux Joueurs, Tapez 2\n\n");
printf("\nVotre choix?\n\n");
scanf("%d", &choixMenu);
return choixMenu;
}
int main(void)
{
switch (affichageMenu())
{
case 1:
{
int nb_lettres;
char mot [NBC];
char masque [NBC];
char lettre ;
int nbcoups,j;
int trouve;
printf("Entrez un mot : ");
scanf("%s", mot);
nb_lettres = strlen(mot);
j = 0;
while (j < nb_lettres)
{
masque[j] = '*';
j++;
}
masque[j] = '\0';
system("cls");
printf("%s", masque);
trouve = FAUX;
nbcoups = 0;
while ((nbcoups < 10) && !trouve) {
printf ("\nProposez une lettre :");
scanf (" %c", &lettre);
j = 0;
while ((j < nb_lettres) && !trouve) {
if (mot[j] == lettre) {
masque[j]=lettre;
if (strchr(masque,'*') == NULL)
trouve = VRAI;
}
j++;
}
printf("%s", masque);
nbcoups++;
}
if (!trouve)
printf("\nVOUS AVEZ PERDU\n");
else
printf("\nVOUS AVEZ GAGNE\n");
return 0;
}
case 2:
{
int choisirMot(char *mot)
{
FILE* dictionnaire = NULL;
int nbMot = 0, numMotChoisi = 0, i = 0;
int nblettre = 0;
dictionnaire = fopen("dictionnaire.txt", "r");
if (dictionnaire == NULL)
{
printf("\nL'ouverture du dictionnaire a echouee");
return 0;
}
do
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
nbMot++;
} while(nblettre != EOF);
//On va créer ici la fonction qui choisit aléatoirement un mot
int nombreAleatoire(int nombreMax)
{
srand(time(NULL));
return (rand() % nombreMax);
}
numMotChoisi = nombreAleatoire(nbMot);
rewind(dictionnaire);
while (numMotChoisi > 0)
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
numMotChoisi--;
}
fgets(mot, 100, dictionnaire);
mot[strlen(mot) - 1] = '\0';
fclose(dictionnaire);
return 1;
}
// C'est ici que l'on va créer le "corps" du jeu
int gagner(int lettreTrouvee[], long longueurMot);
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[]);
char lireCaractere();
int second(int argc, char* argv[])
{
char lettre = 0;
char motATrouver[100] = {0};
int *lettreDecouverte = NULL;
long coupsRestants = 10;
long i = 0;
long longueurMot = 0;
printf("Bienvenue dans le Pendu !\n\n");
if (!choisirMot(motATrouver))
exit(0);
longueurMot = strlen(motATrouver);
lettreDecouverte = malloc(longueurMot * sizeof(int));
if (lettreDecouverte == NULL)
exit(0);
for (i = 0 ; i < longueurMot ; i++)
lettreDecouverte[i] = 0;
while (coupsRestants > 0 && !gagne(lettreDecouverte, longueurMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i])
printf("%c", motATrouver[i]);
else
printf("*");
}
printf("\nProposez une lettre : ");
lettre = lireCaractere();
if (!rechercheLettre(lettre, motATrouver, lettreDecouverte))
{
coupsRestants--;
}
}
if (gagne(lettreDecouverte, longueurMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motATrouver);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motATrouver);
free(lettreDecouverte);
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
int gagne(int lettreDecouverte[], long longueurMot)
{
long i = 0;
int joueurGagne = 1;
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i] == 0)
joueurGagne = 0;
}
return joueurGagne;
}
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[])
{
long i = 0;
int bonneLettre = 0;
for (i = 0 ; motATrouver[i] != '\0' ; i++)
{
if (lettre == motATrouver[i])
{
bonneLettre = 1;
lettreDecouverte[i] = 1;
}
}
return bonneLettre;
}
}
}
}
Pourquoi ?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "dictionnaire.h"
#define VRAI 1
#define FAUX 0
#define NBC 30
int affichageMenu(void)
{
int choixMenu;
printf("********Bonjour, Bienvenue dans Pendu 2.0 !********\n\n");
printf("Avant tout, souhaitez-vous faire une partie:\n\n");
printf("En solitaire, Tapez 1\n");
printf("A deux Joueurs, Tapez 2\n\n");
printf("\nVotre choix?\n\n");
scanf("%d", &choixMenu);
return choixMenu;
}
int main(void)
{
switch (affichageMenu())
{
case 1:
{
int nb_lettres;
char mot [NBC];
char masque [NBC];
char lettre ;
int nbcoups,j;
int trouve;
printf("Entrez un mot : ");
scanf("%s", mot);
nb_lettres = strlen(mot);
j = 0;
while (j < nb_lettres)
{
masque[j] = '*';
j++;
}
masque[j] = '\0';
system("cls");
printf("%s", masque);
trouve = FAUX;
nbcoups = 0;
while ((nbcoups < 10) && !trouve) {
printf ("\nProposez une lettre :");
scanf (" %c", &lettre);
j = 0;
while ((j < nb_lettres) && !trouve) {
if (mot[j] == lettre) {
masque[j]=lettre;
if (strchr(masque,'*') == NULL)
trouve = VRAI;
}
j++;
}
printf("%s", masque);
nbcoups++;
}
if (!trouve)
printf("\nVOUS AVEZ PERDU\n");
else
printf("\nVOUS AVEZ GAGNE\n");
return 0;
}
case 2:
{
int choisirMot(char *mot)
{
FILE* dictionnaire = NULL;
int nbMot = 0, numMotChoisi = 0, i = 0;
int nblettre = 0;
dictionnaire = fopen("dictionnaire.txt", "r");
if (dictionnaire == NULL)
{
printf("\nL'ouverture du dictionnaire a echouee");
return 0;
}
do
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
nbMot++;
} while(nblettre != EOF);
//On va créer ici la fonction qui choisit aléatoirement un mot
int nombreAleatoire(int nombreMax)
{
srand(time(NULL));
return (rand() % nombreMax);
}
numMotChoisi = nombreAleatoire(nbMot);
rewind(dictionnaire);
while (numMotChoisi > 0)
{
nblettre = fgetc(dictionnaire);
if (nblettre == '\n')
numMotChoisi--;
}
fgets(mot, 100, dictionnaire);
mot[strlen(mot) - 1] = '\0';
fclose(dictionnaire);
return 1;
}
// C'est ici que l'on va créer le "corps" du jeu
int gagner(int lettreTrouvee[], long longueurMot);
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[]);
char lireCaractere();
int second(int argc, char* argv[])
{
char lettre = 0;
char motATrouver[100] = {0};
int *lettreDecouverte = NULL;
long coupsRestants = 10;
long i = 0;
long longueurMot = 0;
printf("Bienvenue dans le Pendu !\n\n");
if (!choisirMot(motATrouver))
exit(0);
longueurMot = strlen(motATrouver);
lettreDecouverte = malloc(longueurMot * sizeof(int));
if (lettreDecouverte == NULL)
exit(0);
for (i = 0 ; i < longueurMot ; i++)
lettreDecouverte[i] = 0;
while (coupsRestants > 0 && !gagne(lettreDecouverte, longueurMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i])
printf("%c", motATrouver[i]);
else
printf("*");
}
printf("\nProposez une lettre : ");
lettre = lireCaractere();
if (!rechercheLettre(lettre, motATrouver, lettreDecouverte))
{
coupsRestants--;
}
}
if (gagne(lettreDecouverte, longueurMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motATrouver);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motATrouver);
free(lettreDecouverte);
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
int gagne(int lettreDecouverte[], long longueurMot)
{
long i = 0;
int joueurGagne = 1;
for (i = 0 ; i < longueurMot ; i++)
{
if (lettreDecouverte[i] == 0)
joueurGagne = 0;
}
return joueurGagne;
}
int rechercheLettre(char lettre, char motATrouver[], int lettreDecouverte[])
{
long i = 0;
int bonneLettre = 0;
for (i = 0 ; motATrouver[i] != '\0' ; i++)
{
if (lettre == motATrouver[i])
{
bonneLettre = 1;
lettreDecouverte[i] = 1;
}
}
return bonneLettre;
}
}
}
}
Merci pour ta réponse. J'ai compris ce que tu m'as dit. Mais faut-il que je les définissent avant le menu ? Et surtout comment ?