Langage c - "main" is usually a function

Fermé
guindilla - 25 nov. 2007 à 15:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 nov. 2007 à 16:23
Bonjour.

J'ai fait un jeu de role, et dans mon testGeneral je fais appelle a toutes mes fonctions. Il n'y a donc qu'un main dedans.
Et ils me mettent plusieurs trucs et je ne comprends pas le probleme.

Voici mon testGeneral.c:


#include "structures.h"
#include "lanceDe.h"
#include "plateau.h"
#include "cases_monstre.h"
#include "cases_question.h"
#include "cases_question.h"


int main( int argc, char **argv )

{

Personnage *joueur;

int *tab;

int nbJoueurs;

int vieBoss = 1000;

long curseur = 0;

int avancerDe;

char persoADeplacer = 'a';

int numJoueur = 0;



srand (time (NULL));



joueur = initialisationPersos(&nbJoueurs, joueur);

tab = initialisationPlateau();





while ( vieBoss >0)

{

for (numJoueur=0; numJoueur<nbJoueurs; numJoueur++)

{

avancerDe = lanceDe(1, 6);

printf("\n\n\n\nC'est au tour du joueur %d.\n", numJoueur);

printf("Votre magicien a %d de vie et est sur la case %d.\n", joueur[numJoueur].magicien->vie, joueur[numJoueur].magicien->position);

printf("Votre troll a %d de vie et est sur la case %d.\n\n", joueur[numJoueur].troll->vie, joueur[numJoueur].troll->position);

printf("Vous pouvez deplacer un personnage de %d cases.\n", avancerDe);



while (persoADeplacer != 'M' && persoADeplacer != 'T')

{

printf("Quel personnage voulez-vous deplacer ? (M pour magicien ou T pour troll)", avancerDe);

fflush(stdin);

scanf("%c", &persoADeplacer);

}



if (persoADeplacer == 'M')

{

persoADeplacer = 'a';

if ((joueur[numJoueur].magicien->position + avancerDe) > 20)

{

joueur[numJoueur].magicien->position = 21;

// et faire le truc kan on est sur le boss

}



else

{

joueur[numJoueur].magicien->position = joueur[numJoueur].magicien->position + avancerDe;

}



if (tab[joueur[numJoueur].magicien->position] == CASE_QUESTION)

cases_question_magicien(&curseur, &joueur, numJoueur);



if (tab[joueur[numJoueur].magicien->position] == CASE_SANCTUAIRE)

printf("Aucune action sur cette case");



if (tab[joueur[numJoueur].magicien->position] == CASE_MONSTRE)

case_monstre_magicien(&joueur, numJoueur, &tab);



if (tab[joueur[numJoueur].magicien->position] == CASE_PAUSE)

case_pause_magicien(joueur, nbJoueurs, numJoueur);

}



if (persoADeplacer == 'T')

{

persoADeplacer = 'a';

if ((joueur[numJoueur].troll->position + avancerDe) > 20)

{

joueur[numJoueur].troll->position = 21;

// et faire le truc kan on est sur le boss

}



else

{

joueur[numJoueur].troll->position = joueur[numJoueur].troll->position + avancerDe;

}



if (tab[joueur[numJoueur].troll->position] == CASE_QUESTION)

cases_question_troll(&curseur, &joueur, numJoueur);



if (tab[joueur[numJoueur].troll->position] == CASE_SANCTUAIRE)

printf("Aucune action sur cette case");



if (tab[joueur[numJoueur].troll->position] == CASE_MONSTRE)

case_monstre_troll(&joueur, numJoueur, &tab);



if (tab[joueur[numJoueur].troll->position] == CASE_PAUSE)

case_pause_troll(joueur, nbJoueurs, numJoueur); // provisoire : apres il faudra faire combat contre les perso presents



if (vieBoss < 0)

{

printf("Le jeu est fini.\n");

return 0;

}

}



}

}



system("pause");

return 0;

}




et voici ce qu'on m'ecrit quand je lance le makefile :




gcc -pedantic -ansi -g -Wall -Wextra -I../include testGeneral.c -c
testGeneral.c: Dans la fonction «case_monstre_troll» :
testGeneral.c:9: attention : «main» is usually a function
testGeneral.c:9: erreur: syntax error before «{» token
testGeneral.c:13: erreur: parameter «vieBoss» is initialised
testGeneral.c:14: erreur: parameter «curseur» is initialised
testGeneral.c:16: erreur: parameter «persoADeplacer» is initialised
testGeneral.c:17: erreur: parameter «numJoueur» is initialised
testGeneral.c:19: erreur: syntax error before «srand»
make: *** [testGeneral.o] Erreur 1



ah... et au cas ça vous serve... Voici mon makefile :



#
# makefile
#

.PHONY : all clean

CPPFLAGS = -Wall -Wextra -I../include
CCFLAGS = -pedantic -ansi -g

CC=gcc

all : main

structures.o : structures.c ../include/structures.h
$(CC) $(CCFLAGS) $(CPPFLAGS) structures.c -c

testStructures.o : testStructures.c ../include/structures.h
$(CC) $(CCFLAGS) $(CPPFLAGS) testStructures.c -c

testStructures : testStructures.o structures.o
$(CC) $(CCFLAGS) $(CPPFLAGS) structures.o testStructures.o -o testStructures

plateau.o : plateau.c ../include/plateau.h
$(CC) $(CCFLAGS) $(CPPFLAGS) plateau.c -c

testPlateau.o : testPlateau.c ../include/plateau.h
$(CC) $(CCFLAGS) $(CPPFLAGS) testPlateau.c -c

testPlateau : testPlateau.o plateau.o
$(CC) $(CCFLAGS) $(CPPFLAGS) testPlateau.o plateau.o -o testPlateau

lanceDe.o : lanceDe.c ../include/lanceDe.h
$(CC) $(CCFLAGS) $(CPPFLAGS) lanceDe.c -c

testLanceDe.o : testLanceDe.c ../include/lanceDe.h
$(CC) $(CCFLAGS) $(CPPFLAGS) testLanceDe.c -c

testLanceDe : testLanceDe.o lanceDe.o
$(CC) $(CCFLAGS) $(CPPFLAGS) testLanceDe.o lanceDe.o -o testLanceDe

cases_question.o : cases_question.c ../include/cases_question.h
$(CC) $(CCFLAGS) $(CPPFLAGS) cases_question.c -c

cases_monstre.o : cases_monstre.c ../include/cases_monstre.h
$(CC) $(CCFLAGS) $(CPPFLAGS) cases_monstre.c -c

cases_pause.o : cases_pause.c ../include/cases_pause.h
$(CC) $(CCFLAGS) $(CPPFLAGS) cases_pause.c -c

testCases.o : testCases.c ../include/cases_monstre.h ../include/cases_question.h
$(CC) $(CCFLAGS) $(CPPFLAGS) testCases.c -c

testCases : testCases.o cases_monstre.o cases_question.o
$(CC) $(CCFLAGS) $(CPPFLAGS) testCases.o cases_monstre.o cases_question.o -o testCases

testGeneral.o : testGeneral.c
$(CC) $(CCFLAGS) $(CPPFLAGS) testGeneral.c -c

testGeneral : testGeneral.o structures.o lanceDe.o plateau.o cases_pause.o cases_monstre.o cases_question.o
$(CC) $(CCFLAGS) $(CPPFLAGS) testGeneral.o structures.o lanceDe.o plateau.o cases_pause.o cases_monstre.o cases_question.o -o testGeneral

clean :
rm *.o


Aidez-moi svpppp je ne m'en sors pas j'en peux plus !!! lol


Merci, Marie ;) :D
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
25 nov. 2007 à 16:23
Salut,

Déjà il y a une petite faute, tu as inclu deux fois #include "cases_question.h"
Ensuite, lorsque tu postes un code, pourrais-tu utiliser le bouton permettant la conversation de la forme du texte (bouton à côté de souligner), car sans indentation, c'est dur de lire le code.

Cdt
0