Bonjour everybody,
j' essaie de développer un jeu de la vie en c sous code block je crois que mon compilateur c'est mingw, pour l’ instant je doit trouver le nombre de cellules vivantes adjacentes pour ensuite définir le statu de la case( se qui n'est pas encore fait ^^" ).
Le problème c'est que quand je recherche le nombre de cellule vivante adjacente la variable retourne des nombres cohérents et d'autre impossibles:
Spoiler :
le mapping des cellules vivantes a gauche et a droite le nombre de cellules vivantes adjacentes
1 0 0 0 0 0 0 0 0 0 1971555541 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -772628758 1 0 0 0 0 0 0 0 9
0 0 0 0 0 0 0 0 0 0 -2 0 1 0 1 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 1971882230 0 1 0 1 0 0 0 0 1972054368 0 0 0 0 0 0 0 0 0 0 4200372 0 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 2130567168
0 0 0 0 0 0 0 0 0 0 1972054368 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2686824 0 0 0 0 0 0 0 0 0 0 4201526 0 0 0 0 0 0 0 1 4198582
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 |
Le code en entier:
Code :
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int cell[10][10];// initialisation de la carte de jeu
- int x=0;
- int y=0;
- //initialisation des cellules
- for (y = 0 ; y < 10 ; y++)
- {
- for (x = 0 ; x < 10 ; x++)
- {
- cell[x][y]=0;
- printf("%d",cell[x][y]);
- }
- printf("\n" );
- }
- printf("\n" );
- //chois des des cellules vivantes
- cell[9][9] = 1;
- cell[3][3] = 1;
- cell[0][0] = 1;
- //affichage des cellules
- for (y = 0 ; y < 10 ; y++)
- {
- for (x = 0 ; x < 10 ; x++)
- {
- printf("%d ",cell[x][y]);
- }
- printf("\n" );
- }
- printf("\n" );
- //calcule du nombre de cellule adjacente
- int adj = 0 ;
- for (y = 0 ; y < 10 ; y++)//boucle pour parcourir le tableau
- {
- for (x = 0 ; x < 10 ; x++)
- {
- adj = 0 ;// variable pour stocker les resultat
- if(y-1>=0 && x-1>=0)// Ces conditions servent à ne pas sortir du tableau
- {
- adj=adj+cell[x-1][y-1];
- }
- if(y-1>=0)
- {
- adj=adj+cell[x][y-1];
- }
- if(x-1>=0)
- {
- adj=adj+cell[x-1][y];
- }
- if(y-1>=0 && x+1<10)
- {
- adj=adj+cell[x+1][y-1];
- }
- if( x+1<10)
- {
- adj=adj+cell[x+1][y];
- }
- if( y+1<10 && x+1<10)
- {
- adj=adj+cell[x+1][y+1];
- }
- if(y+1<10)
- {
- adj=adj+cell[x-1][y+1];
- }
- if(x-1>=0 && y+1<10)
- {
- adj=adj+cell[x+1][y-1];
- }
- printf("%d ",adj);
- }
- printf("\n" );
- }
- return 0;
- }
|
Je vois pas d'où sortent ces nombres, et comment résoudre se problème,
question auxiliaire je trouve que la partie sur le calcule de la cellule adjacente trop long mais je sais pas comment la raccourcir, si vous avez une idée.
Merci
Message édité par jkiller19 le 05-09-2011 à 19:58:27