Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Grapic.h>
- #include <ctime>
- #include <cmath>
- #include <iostream>
- #include <math.h>
- #include <iostream>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- using namespace std;
- using namespace grapic;
- const int DIMW = 1000;
- const int MAXX = 100;
- const int MAXY = 100;
- struct cell
- {
- int etat;
- };
- struct jeu_de_la_vie
- {
- struct cell tab[MAXX][MAXY];
- int dx,dy;
- int alive;
- int dead;
- Image im;
- };
- void init(jeu_de_la_vie &jeu)
- {
- int i,j;
- jeu.dx = 50;
- jeu.dy = 50;
- jeu.im = image("data/vert.jpg", true, 255, 255, 255, 255);
- for (i=0;i<jeu.dx;i++)
- {
- for (j=0;j<jeu.dy;j++)
- {
- jeu.tab[i][j].etat = 0;
- }
- }
- }
- void etat_initial(jeu_de_la_vie &jeu)
- {
- int i;
- int l,c;
- jeu.alive = 1000;
- jeu.dead = jeu.dx*jeu.dy-jeu.alive;
- for (i=0;i<jeu.alive;i++)
- {
- do{
- l = rand()%(jeu.dx-2)+1;
- c = rand()%(jeu.dy-2)+1;
- }while (jeu.tab[l][c].etat != 0);
- jeu.tab[l][c].etat = 1;
- }
- }
- void etat_suivant(jeu_de_la_vie &jeu)
- {
- int i,j;
- int a;
- for (i=0;i<jeu.dx;i++)
- {
- for (j=0;j<jeu.dy;j++)
- {
- a = 0;
- if (jeu.tab[i-1][j-1].etat == 1)
- a=a+1;
- if (jeu.tab[i-1][j].etat == 1)
- a=a+1;
- if (jeu.tab[i-1][j+1].etat == 1)
- a=a+1;
- if (jeu.tab[i][j-1].etat == 1)
- a=a+1;
- if (jeu.tab[i][j+1].etat == 1)
- a=a+1;
- if (jeu.tab[i+1][j-1].etat == 1)
- a=a+1;
- if (jeu.tab[i+1][j].etat == 1)
- a=a+1;
- if (jeu.tab[i+1][j+1].etat == 1)
- a=a+1;
- if (jeu.tab[i][j].etat == 0 && a == 3)
- {
- jeu.tab[i][j].etat = 2;
- jeu.alive = jeu.alive+1;
- jeu.dead = jeu.dead-1;
- }
- if (jeu.tab[i][j].etat == 1 && a > 3)
- {
- jeu.tab[i][j].etat = 0;
- jeu.alive = jeu.alive-1;
- jeu.dead = jeu.dead+1;
- }
- if (jeu.tab[i][j].etat == 1 && a < 2)
- {
- jeu.tab[i][j].etat = 0;
- jeu.alive = jeu.alive-1;
- jeu.dead = jeu.dead+1;
- }
- }
- }
- for (i=0;i<jeu.dx;i++)
- {
- for (j=0;j<jeu.dy;j++)
- {
- if (jeu.tab[i][j].etat == 2)
- jeu.tab[i][j].etat = 1;
- }
- }
- }
- void draw (jeu_de_la_vie &jeu)
- {
- int i,j;
- for (i=0;i<jeu.dy;i++)
- {
- line(0,i*20,DIMW,i*20);
- line(i*20,0,i*20,DIMW);
- }
- for(i=0;i<jeu.dx;i++)
- {
- for(j=0;j<jeu.dy;j++)
- {
- if (jeu.tab[i][j].etat == 1)
- {
- image_draw(jeu.im,(20*i),(20*j),20,20);
- }
- }
- }
- if (isKeyPressed('s'))
- {
- delay(100);
- etat_suivant(jeu);
- }
- }
- int main(int , char** )
- {
- bool stop=false;
- winInit("terrain", DIMW, DIMW);
- backgroundColor(255,255,255);
- jeu_de_la_vie jeu;
- init(jeu);
- etat_initial(jeu);
- setKeyRepeatMode(true);
- while(!stop){
- winClear();
- draw(jeu);
- stop=winDisplay();
- }
- winDisplay();
- pressSpace();
- winQuit();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement