Des erreurs...
Koda94
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Koda94 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Koda94 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
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...
- Erreur dans le chargement des donnees vod - Forum Box et Streaming vidéo
- Freebox erreur impossible de récupérer la liste des mises à jour - Forum Freebox
- Mise à jour de ma Freebox version 3.5.1 - Forum Freebox
- Freebox erreur impossible de récupérer la liste de - Forum Réseaux sociaux
- Une ou plusieurs erreurs sont présentes dans le formulaire. merci de rectifier votre saisie en vous aidant des aides disponibles. - Forum VB / VBA
2 réponses
'lut, tout simplement on ne peut pas définir de fonction dans une autre en C. il faut que tu les déplaces hors du main, et que tu les appelles dans ton switch.
Et il ne doit y avoir qu'un seul main d'ailleurs; je ne sais pas ce qui t'as mené à en mettre comme ça...
Et il ne doit y avoir qu'un seul main d'ailleurs; je ne sais pas ce qui t'as mené à en mettre comme ça...
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 ?