#1 Le 07/05/2006, à 16:11
- fred____89
message d'erreur indescriptible
voici le message d'erreur bizarre que jobtient
jeu1.c: In function 'menu':
jeu1.c:43: erreur: incompatible implicit declaration of function 'jeu'
jeu1.c:16: erreur: previous implicit declaration of ‘jeu’ was here
jeu1.c: In function 'jeu':
jeu1.c:53: erreur: incompatible implicit declaration of function 'creachambre'
jeu1.c:18: erreur: previous implicit declaration of 'creachambre' was here
jeu1.c:54: erreur: incompatible implicit declaration of function 'chambre'
jeu1.c:19: erreur: previous implicit declaration of 'chambre' was here
en compilant avec gcc le programme suivant
#include<stdio.h>
/* Programme principal */
main()
{
void menu();//fonction affichage du menu
void jeu();//fonction "moteur" du jeu
void options();//fonction options
void creachambre(int*);//fonction creation des pieces
void chambre(int*,int*);//fonction au sein d'une piece
menu();
}
/*fin du programme principal*/
/*fonction affichage du menu*/
void menu()
{
//déclaration de variables locales
int choix,test;
test=0;
/*affichage*/
printf("|*************************************|\n");
printf("| le labyrinthe du |\n");
printf("| sorcier |\n");
printf("|*************************************|\n");
printf("\n");
printf("que voulez vous faire?\n");
printf("j:jouer\n");
printf("q:quitter\n");
scanf("%c",&choix);
if(choix=='j');
jeu();
}
/*fonction jeu, moteur principal du jeu*/
void jeu()
{
int Tchambre[150];
int Tmystere[150];
creachambre(&Tchambre[0]);
chambre(&Tchambre[0],&Tmystere[0]);
}
/*fonction création des pieces*/
void creachambre(int *T)
{
int i,j,alea,alea1,alea2;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=(rand()%3+1);
alea1=(rand()%3+1);
alea2=(rand()%3+1);
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
/*fonction au sein d'une piece*/
void chambre(int*T,int*T2)
{
int i,alea,alea1,alea2,choix,ch,k,temp,j,a,nbr,m;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=rand()%3+1;
alea1=rand()%3+1;
alea2=rand()%3+1;
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
i=1;
ch=1;
k=1;
temp=0;
nbr=50;
do
{
printf("vous êtes dans la pièce n° %d ",i);
printf("il y a 3 leviers, un choix s'offre à vous\n");
printf("il vous reste %d marqueurs\n",nbr);
for(m=0 ; m<=2 ; m++);
{
if(T2[3*i+m]==1);
printf("A\n");
}
do
{
printf("quel levier voulez vous tirez?");
scanf("%d",&choix);
}
while(choix>3 || choix<0);
if((T[3*i+choix]==1) && (i<=1))
{
printf("vous avez gagné la partie ! ! !\n");
return;
}
if((T[3*i+choix]==1) && (i!=1))
{
printf("le levier vous téléporte dans la piece précedente\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=1;
}
temp=i;
i=k;
k=temp;
Dernière modification par fred____89 (Le 07/05/2006, à 16:15)
Hors ligne
#2 Le 07/05/2006, à 16:19
- Bobbybionic
Re : message d'erreur indescriptible
Les balises "Code" elles sont cool je trouve...
Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.
http://bobbybionic.wordpress.com
Hors ligne
#3 Le 07/05/2006, à 16:20
- fred____89
Re : message d'erreur indescriptible
Les balises "Code" elles sont cool je trouve...
comment ca
Hors ligne
#4 Le 07/05/2006, à 16:28
- Desintegr
Re : message d'erreur indescriptible
Tu dois d'abord déclarer tes fonctions avant de les utiliser.
Deux solutions.
Soit tu mets ton main à la fin.
Soit tu utilises un fichier .h avec la déclaration de chaque fonction dedans.
Hoc Volo, Sic Jubeo !
Mon wiki : http://desintegr.free.fr
Hors ligne
#5 Le 07/05/2006, à 16:33
- fred____89
Re : message d'erreur indescriptible
j'essai et je te redit ca tu sera encore la enfin j'espere
Hors ligne
#6 Le 07/05/2006, à 16:38
- pabix
Re : message d'erreur indescriptible
déplace les lignes de void menu (); à void chambre (int*, int*); hors de ta fonction main, au début
Benoit
Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D
Hors ligne
#7 Le 07/05/2006, à 16:55
- fred____89
Re : message d'erreur indescriptible
déplace les lignes de void menu (); à void chambre (int*, int*); hors de ta fonction main, au début
Benoit
j'ai fait ce que tu ma dit mais je me retrouve avec un code qui est le suivant
/tmp/cc7hUpkr.o:dans la fonction jeu
jeu1.c:(.text+0xf5):reference indefinie vers chambre
collect 2:ld a retourne 1 code d'"etat d'execution
si vous savait ce qu'il faut faire dite le moi vous serait cool
Dernière modification par fred____89 (Le 07/05/2006, à 16:57)
Hors ligne
#8 Le 07/05/2006, à 16:58
- pabix
Re : message d'erreur indescriptible
Quelle commande utilises-tu pour compiler ?
Fais-tu un
gcc -o fichier fichier.c
?
Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D
Hors ligne
#9 Le 07/05/2006, à 16:59
- fred____89
Re : message d'erreur indescriptible
j'utilise deja cette commande pour compiler
Hors ligne
#10 Le 07/05/2006, à 17:45
- Riicooo
Re : message d'erreur indescriptible
pourrais-tu reposter ton code modifié ?
le premier post ne contient pas la fin du fichier
Dernière modification par Riicooo (Le 07/05/2006, à 17:46)
Hors ligne
#11 Le 07/05/2006, à 18:03
- fred____89
Re : message d'erreur indescriptible
le voila
#include<stdio.h>
void menu();//fonction affichage du menu
void jeu();//fonction "moteur" du jeu
void options();//fonction options
void creachambre(int*);//fonction creation des pieces
void chambre(int*,int*);//fonction au sein d'une piece
main()
{
menu();
}
void menu()
{
int choix,test;
test=0;
printf("|*************************************|\n");
printf("| le labyrinthe du |\n");
printf("| sorcier |\n");
printf("|*************************************|\n");
printf("\n");
printf("que voulez vous faire?\n");
printf("j:jouer\n");
printf("q:quitter\n");
scanf("%c",&choix);
if(choix=='j');
jeu();
}
void jeu()
{
int Tchambre[150];
int Tmystere[150];
creachambre(&Tchambre[0]);
chambre(&Tchambre[0],&Tmystere[0]);
}
void creachambre(int *T)
{
int i,j,alea,alea1,alea2;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=(rand()%3+1);
alea1=(rand()%3+1);
alea2=(rand()%3+1);
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
void chambre(int*T,int*T2)
{
int i,alea,alea1,alea2,choix,ch,k,temp,j,a,nbr,m;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=rand()%3+1;
alea1=rand()%3+1;
alea2=rand()%3+1;
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
i=1;
ch=1;
k=1;
temp=0;
nbr=50;
do
{
printf("vous etes dans la piece n° %d ",i);
printf("il y a 3 leviers, un choix s'offre a vous\n");
printf("il vous reste %d marqueurs\n",nbr);
for(m=0 ; m<=2 ; m++);
{
if(T2[3*i+m]==1);
printf("A\n");
}
do
{
printf("quel levier voulez vous tirez?");
scanf("%d",&choix);
}
while(choix>3 || choix<0);
if((T[3*i+choix]==1) && (i<=1))
{
printf("vous avez gagné la partie ! ! !\n");
return;
}
if((T[3*i+choix]==1) && (i!=1))
{
printf("le levier vous téléporte dans la piece précedente\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=1;
}
temp=i;
i=k;
k=temp;
}
}
if((T[3*i+choix]==2) && (i==1))
{
printf("Vous restez dans la même pièce\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=2;
}
temp=i;
i=k;
k=temp;
}
}
if((T[3*i+choix]==2) && (i!=1))
{
printf("le levier vous teleporte au hasard dans une piece que vous avez deja visiter...\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=2;
}
temp=i;
i=k;
k=temp;
}
k=i;
do
{
j=rand()%ch+1;
}
while(j==i);
i=j;
}
if(T[3*i+choix]==3)
{
printf("le levier vous téléporte dans une nouvelle pièce,identique à celle ci...\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=3;
}
temp=i;
i=k;
k=temp;
}
k=i;
ch=ch+1;
i=ch;
}
}
while(i<50);
printf("vous avez perdu la partie");
}
}
Hors ligne
#12 Le 07/05/2006, à 18:28
- Riicooo
Re : message d'erreur indescriptible
Oula !!
déjà, comme te le demandais Bobbybionic plus haut, tu devrais éditer ton post pour rajouter les balises Code
[ code ] et [ /code ]
enleve la derniere acolade du fichier et rajoute la avant la fonction chambre, comme ça (au passage, j'utilise ici les balises Code) :
#include<stdio.h>
void menu();//fonction affichage du menu
void jeu();//fonction "moteur" du jeu
void options();//fonction options
void creachambre(int*);//fonction creation des pieces
void chambre(int*,int*);//fonction au sein d'une piece
main()
{
menu();
}
void menu()
{
int choix,test;
test=0;
printf("|*************************************|\n");
printf("| le labyrinthe du |\n");
printf("| sorcier |\n");
printf("|*************************************|\n");
printf("\n");
printf("que voulez vous faire?\n");
printf("j:jouer\n");
printf("q:quitter\n");
scanf("%c",&choix);
if(choix=='j');
jeu();
}
void jeu()
{
int Tchambre[150];
int Tmystere[150];
creachambre(&Tchambre[0]);
chambre(Tchambre,Tmystere);
}
void creachambre(int *T)
{
int i,j,alea,alea1,alea2;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=(rand()%3+1);
alea1=(rand()%3+1);
alea2=(rand()%3+1);
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
}
void chambre(int*T,int*T2)
{
int i,alea,alea1,alea2,choix,ch,k,temp,j,a,nbr,m;
unsigned int t;
t=time();
srand(t);
for( i=0 ; i<50 ;i++)
do
{
alea=rand()%3+1;
alea1=rand()%3+1;
alea2=rand()%3+1;
T[3*i]=alea;
T[3*i+1]=alea1;
T[3*i+2]=alea2;
}
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
i=1;
ch=1;
k=1;
temp=0;
nbr=50;
do
{
printf("vous etes dans la piece n° %d ",i);
printf("il y a 3 leviers, un choix s'offre a vous\n");
printf("il vous reste %d marqueurs\n",nbr);
for(m=0 ; m<=2 ; m++);
{
if(T2[3*i+m]==1);
printf("A\n");
}
do
{
printf("quel levier voulez vous tirez?");
scanf("%d",&choix);
}
while(choix>3 || choix<0);
if((T[3*i+choix]==1) && (i<=1))
{
printf("vous avez gagné la partie ! ! !\n");
return;
}
if((T[3*i+choix]==1) && (i!=1))
{
printf("le levier vous téléporte dans la piece précedente\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=1;
}
temp=i;
i=k;
k=temp;
}
}
if((T[3*i+choix]==2) && (i==1))
{
printf("Vous restez dans la même pièce\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=2;
}
temp=i;
i=k;
k=temp;
}
}
if((T[3*i+choix]==2) && (i!=1))
{
printf("le levier vous teleporte au hasard dans une piece que vous avez deja visiter...\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=2;
}
temp=i;
i=k;
k=temp;
}
k=i;
do
{
j=rand()%ch+1;
}
while(j==i);
i=j;
}
if(T[3*i+choix]==3)
{
printf("le levier vous téléporte dans une nouvelle pièce,identique à celle ci...\n");
if(nbr>=1)
{
printf("voulez vous marquer ce levier?(oui:1)");
scanf("%d",&a);
if(a==1)
{
nbr=nbr-1;
T2[3*i+choix]=3;
}
temp=i;
i=k;
k=temp;
}
k=i;
ch=ch+1;
i=ch;
}
}
while(i<50);
printf("vous avez perdu la partie");
}
ça compile chez moi
Dernière modification par Riicooo (Le 07/05/2006, à 18:29)
Hors ligne
#13 Le 07/05/2006, à 18:54
- fred____89
Re : message d'erreur indescriptible
oui je ve bien le faire mais a quoi ca va servir explique toi
Hors ligne
#14 Le 07/05/2006, à 19:00
- Riicooo
Re : message d'erreur indescriptible
bin ça va compiler...
voir :
...
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
void chambre(int*T,int*T2)
...
ça me choque !!
tu déclare une fonction dans une autre !
je sais qu'on peut le faire en Pascal, mais en C, je crois pas, ou alors, si t'as le droit, elle n'est "visible" (tu ne peux pas l'appeler ailleurs) que dans le groupe d'acolades où elle est écrite...
Dernière modification par Riicooo (Le 07/05/2006, à 19:03)
Hors ligne
#15 Le 07/05/2006, à 19:12
- fred____89
Re : message d'erreur indescriptible
en fait j'ai trouver mais g un autre soucit je voudrait si tusait comment on pourrait faire pour incorporer des marqueur au jeu
merci de vos suggestion
Hors ligne
#16 Le 07/05/2006, à 19:19
- Riicooo
Re : message d'erreur indescriptible
Des marqueurs ??
explique toi
Dernière modification par Riicooo (Le 07/05/2006, à 19:20)
Hors ligne
#17 Le 07/05/2006, à 19:29
- fred____89
Re : message d'erreur indescriptible
enfaite il faudrait qu'a chaque fois que le joueur appui sur un levier qu'il ait la possibiliter de pouvoir soit afficher un seul marqueur dans la piece soit de ne pas en indiquer merci de vos suggestions
Hors ligne
#18 Le 07/05/2006, à 19:53
- Riicooo
Re : message d'erreur indescriptible
J'ai pas essayé de comprendre le code, j'ai juste essayé de le compiler...
Dernière modification par Riicooo (Le 07/05/2006, à 19:53)
Hors ligne
#19 Le 07/05/2006, à 20:58
- fred____89
Re : message d'erreur indescriptible
est que tu as reussi si non place une accolade de fin entre
Code:
...
while((alea==alea1) || (alea==alea2) || (alea1==alea2));
}
void chambre(int*T,int*T2)
...
et il se compilera donc apres tu verra peut etre comment le modifier pour que les marqueurs fonctionne d'avance merci beaucoup
Hors ligne
#20 Le 07/05/2006, à 21:26
- Riicooo
Re : message d'erreur indescriptible
tu m'expliques ce que je t'ai dit juste avant ?
Je ne vais pas te macher le travaille désolé...
en plus ça n'a rien à voir avec Ubuntu là, et tu n'est pas sur un forum d'aide à la prog !
Tu pourrais faire un effort pour écrire correctement ! (chui pas un exemple vu le nombre de fautes que je fais mais bon, quand même !)
Dernière modification par Riicooo (Le 07/05/2006, à 21:29)
Hors ligne
#21 Le 07/05/2006, à 22:27
- fred____89
Re : message d'erreur indescriptible
non je sais ke ce né pas a toi de le faire mais ca serait si tu pouvait juste m'aiguille histoire que je ne soit pas bloque pour finir mon jeu et que je puisse attaquer les graphisme
Hors ligne
#22 Le 07/05/2006, à 22:35
- Riicooo
Re : message d'erreur indescriptible
Bin si tu n'arrives pas à faire des choses simples comme celles que tu demandes, la suite va pas être drole ! surtout si tu comptes faire du graphique...
PS : s'il te plait, arrêtes le langage SMS et utilises un peu des signes de ponctuation !
Hors ligne
#23 Le 07/05/2006, à 22:43
- fred____89
Re : message d'erreur indescriptible
ok, mais je suis plus fort en graphisme qu'en programmation.
donc , tu ne vois vraiment pas comment je pourrait faire?
merci
Hors ligne
#24 Le 07/05/2006, à 22:57
- Riicooo
Re : message d'erreur indescriptible
t'es ptetre bon en graphisme, mais la tu parle de programmation graphique...
et désolé, je n'ai ni le courrage, ni l'envie de regarder ton code (en plus il n'est ni indenté, ni commenté !)...
un autre peut etre ? pour le relai...
PS : j'apprécie l'effort d'écriture du dernier post ! merci
Dernière modification par Riicooo (Le 07/05/2006, à 22:59)
Hors ligne
#25 Le 08/05/2006, à 14:56
- fred____89
Re : message d'erreur indescriptible
autre petit souci je voudrait savoir si cet syntaxe et correct car je n'ai pas le resultat attendu.
val=rand()%3+1;
t[i][1]=val;
en faite, ce que je veux faire, c'est d'affecter dans un tableau une valeur,mais ca ne marche. pourquoi?
merci.
Dernière modification par fred____89 (Le 08/05/2006, à 14:59)
Hors ligne