Jeu de la vie en C
gaet67
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
don_josep Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
don_josep Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
J'ai a programmer le jeu de la vie en C et je dois le rendre mercredi et ça fais une semaine que je cherche pourquoi je n'arrive pas a le compiler et voir si il marche ...
J'aimerais savoir si quelqu'un pourrait m'aider svp ...
J'utilise Dev-C++ et quand je compile je recoi comme message :
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
Le programme que j'ai ecrit est :
J'ai a programmer le jeu de la vie en C et je dois le rendre mercredi et ça fais une semaine que je cherche pourquoi je n'arrive pas a le compiler et voir si il marche ...
J'aimerais savoir si quelqu'un pourrait m'aider svp ...
J'utilise Dev-C++ et quand je compile je recoi comme message :
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
Le programme que j'ai ecrit est :
#include <stdio.h> #include <time.h> #include <stdlib.h> int t1[30][30],t2[30][30]; int tirage() { return rand()%2; } void mise_a_zero(int t1[30][30],int t2[30][30]) { int i,j; for(i=0;i<30;i++) { for(j=0;i<30;j++) { t1[i][j]==0; t2[i][j]==0; } } } void affichage(int t1[30][30]) { int i,j; for(i=0;i<30;i++) { for(j=0;j<30;j++) { if (t1[i][j]==1) { printf("X"); } else { printf(" "); } } } void nombre_voisin(int t1[30][30],int t2[30][30]) { int i,j,nb; for(i=0;i<30;i++) { for(j=0;j<30;j++) { if((i==0)&&(j==0)) { nb=t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]; } else if((i==0)&&(j==29)) { nb=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]; } else if((i==29)&&(j==0)) { nb=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]; } else if((i==0)&&(j!=0)&&(j!=29)) { nb=t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]+t1[i+1][j+1]+t1[i][j+1]; } else if((j==0)&&(i!=0)&&(i!=29)) { nb=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]; } else if((i==29)&&(j!=0)&&(j!=29)) { nb=t1[i][j-1]+t1[i-1][j-1]+t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]; } else if((j==29)&&(i!=0)&&(i!=29)) { nb=t1[i-1][j]+t1[i-1][j-1]+t1[i][j-1]+t1[i+1][j-1]+t1[i+1][j]; } else if((i!=0)&&(i!=29)&&(j!=0)&&(j!=29)) { nb=t1[i-1][j]+t1[i-1][j+1]+t1[i][j+1]+t1[i+1][j+1]+t1[i+1][j]+t1[i+1][j-1]+t1[i][j-1]+t1[i-1][j-1]; } if((t1[i][j]==0)&&(nb==3)) { t2[i][j]==1; } else if((t1[i][j]==1)&&((nb==2)||(nb==3))) { t2[i][j]==1; } else if((t1[i][j]==1)&&((nb==1)||(nb==0)||(nb>3))) { t2[i][j]==0; } } } } void echange(int t1[30][30],int t2[30][30]) { int i,j,tmp; for(i=0;i<30;i++) { for(j=0;j<30;j++) { tmp=t1[i][j]; t1[i][j]=t2[i][j]; t2[i][j]=tmp; } } } void tempo(int n) { int i,x; x=0; for(i=0;i<n;i++) { x=1+i; } } int testfin(int t1[30][30]) { int cpt; for(i=0;i<30;i++) { for(j=0;j<30;j++) { if(t1[i][j]==0) { cpt++; } else { cpt=cpt; } } } return cpt; } void jouer() { int end; end==0; mise_a_zero(t1,t2); for(i=0;i<30;i++) { for(j=0;j<30;j++) { t1[i][j]=tirage(); if (t1[i][j]==1) { printf("X"); } else { printf(" "); } } } do { nombre_voisin(t1,t2); if(t1=t2) { printf("\nL'evolution de l'etat des cases est terminee ...\n"); end==1; } else { if((testfin(t1)==0)||(testfin(t1)==900)) { printf("L'evolution de l'etat des cases est terminee ...\n"); end==1; } else { end==0; } } affichage(t1); echange(t1,t2); tempo(100); } while(end!=1); } int main() { int a,fin; printf(" -=> Bienvenu dans le jeu de la vie <=-"); printf("\n\n\n\n\n\n"); do { fin=0; printf(" Que voulez-vous faire?\n\n"); printf(" 1 - Afficher les regles du jeu\n"); printf(" 2 - Jouer\n"); printf(" 3 - Quitter\n"); printf(" Entrez le numero qui precede ce que vous souhaitez faire : "); scanf("%i",&a); printf("\n"); if(a==1) { printf("Tout d'abord il faut preciser que le jeu de la vie n'est pas vraiment un jeu au sens ludique,\n"); printf("puisqu'il ne necessite aucun joueur. En fait il s'agit d'un automate cellulaire, un modele \n"); printf("ou chaque etat conduit mecaniquement a l'etat suivant a partir des regles pre-etablies.\n\n"); printf("Le jeu se deroule sur une grille a deux dimensions dont les cases peuvent prendre deux \n"); printf("etats distincts : 'vivantes' ou 'mortes'.\n"); printf("Les regles sont : \n"); printf("-> une cellule morte possedant exactement trois voisines vivantes devient elle aussi vivante.\n"); printf("-> une cellule vivante possedant deux ou trois voisines vivante reste vivante.\n"); printf("-> dans les autres cas la cellule meurt ou reste a l'etat morte.\n\n"); } else { if(a==2) { srand(time(NULL)); jouer(); } else { fin==1; } } } while (fin=!1); return 0; } }
A voir également:
- Jeu de la vie en C
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo
- Logo jeu - Télécharger - Jeux vidéo
- Jeux de moto: jeu de course 3d - Télécharger - Course
3 réponses
Hum, des variables globales, faut éviter. Sinon t1[i][j]==0; t2[i][j]==0; me choquent. Il faut écrire =0 et non ==0;
Après il y a peut-être d'autres erreurs, à toi de dire.
Bonne chance
Après il y a peut-être d'autres erreurs, à toi de dire.
Bonne chance