Advertisement
Guest User

tgfvrt

a guest
Dec 2nd, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. #include <Grapic.h>
  2. #include <ctime>
  3. #include <cmath>
  4. #include <iostream>
  5. #include <math.h>
  6. #include <iostream>
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <time.h>
  10.  
  11. using namespace std;
  12. using namespace grapic;
  13.  
  14.  
  15. const int DIMW = 1000;
  16. const int MAXX = 100;
  17. const int MAXY = 100;
  18.  
  19. struct cell
  20. {
  21. int etat;
  22. };
  23.  
  24.  
  25. struct jeu_de_la_vie
  26. {
  27. struct cell tab[MAXX][MAXY];
  28. int dx,dy;
  29. int alive;
  30. int dead;
  31. Image im;
  32. };
  33.  
  34. void init(jeu_de_la_vie &jeu)
  35. {
  36. int i,j;
  37. jeu.dx = 50;
  38. jeu.dy = 50;
  39. jeu.im = image("data/vert.jpg", true, 255, 255, 255, 255);
  40. for (i=0;i<jeu.dx;i++)
  41. {
  42. for (j=0;j<jeu.dy;j++)
  43. {
  44. jeu.tab[i][j].etat = 0;
  45. }
  46. }
  47. }
  48.  
  49. void etat_initial(jeu_de_la_vie &jeu)
  50. {
  51. int i;
  52. int l,c;
  53. jeu.alive = 1000;
  54. jeu.dead = jeu.dx*jeu.dy-jeu.alive;
  55. for (i=0;i<jeu.alive;i++)
  56. {
  57. do{
  58. l = rand()%(jeu.dx-2)+1;
  59. c = rand()%(jeu.dy-2)+1;
  60. }while (jeu.tab[l][c].etat != 0);
  61. jeu.tab[l][c].etat = 1;
  62. }
  63. }
  64.  
  65. void etat_suivant(jeu_de_la_vie &jeu)
  66. {
  67. int i,j;
  68. int a;
  69. for (i=0;i<jeu.dx;i++)
  70. {
  71. for (j=0;j<jeu.dy;j++)
  72. {
  73. a = 0;
  74. if (jeu.tab[i-1][j-1].etat == 1)
  75. a=a+1;
  76. if (jeu.tab[i-1][j].etat == 1)
  77. a=a+1;
  78. if (jeu.tab[i-1][j+1].etat == 1)
  79. a=a+1;
  80. if (jeu.tab[i][j-1].etat == 1)
  81. a=a+1;
  82. if (jeu.tab[i][j+1].etat == 1)
  83. a=a+1;
  84. if (jeu.tab[i+1][j-1].etat == 1)
  85. a=a+1;
  86. if (jeu.tab[i+1][j].etat == 1)
  87. a=a+1;
  88. if (jeu.tab[i+1][j+1].etat == 1)
  89. a=a+1;
  90. if (jeu.tab[i][j].etat == 0 && a == 3)
  91. {
  92. jeu.tab[i][j].etat = 2;
  93. jeu.alive = jeu.alive+1;
  94. jeu.dead = jeu.dead-1;
  95. }
  96. if (jeu.tab[i][j].etat == 1 && a > 3)
  97. {
  98. jeu.tab[i][j].etat = 0;
  99. jeu.alive = jeu.alive-1;
  100. jeu.dead = jeu.dead+1;
  101. }
  102. if (jeu.tab[i][j].etat == 1 && a < 2)
  103. {
  104. jeu.tab[i][j].etat = 0;
  105. jeu.alive = jeu.alive-1;
  106. jeu.dead = jeu.dead+1;
  107. }
  108. }
  109. }
  110. for (i=0;i<jeu.dx;i++)
  111. {
  112. for (j=0;j<jeu.dy;j++)
  113. {
  114. if (jeu.tab[i][j].etat == 2)
  115. jeu.tab[i][j].etat = 1;
  116. }
  117. }
  118. }
  119.  
  120.  
  121. void draw (jeu_de_la_vie &jeu)
  122. {
  123. int i,j;
  124. for (i=0;i<jeu.dy;i++)
  125. {
  126. line(0,i*20,DIMW,i*20);
  127. line(i*20,0,i*20,DIMW);
  128. }
  129. for(i=0;i<jeu.dx;i++)
  130. {
  131. for(j=0;j<jeu.dy;j++)
  132. {
  133. if (jeu.tab[i][j].etat == 1)
  134. {
  135. image_draw(jeu.im,(20*i),(20*j),20,20);
  136. }
  137. }
  138. }
  139. if (isKeyPressed('s'))
  140. {
  141. delay(100);
  142. etat_suivant(jeu);
  143. }
  144.  
  145. }
  146.  
  147.  
  148. int main(int , char** )
  149. {
  150. bool stop=false;
  151. winInit("terrain", DIMW, DIMW);
  152. backgroundColor(255,255,255);
  153. jeu_de_la_vie jeu;
  154. init(jeu);
  155. etat_initial(jeu);
  156. setKeyRepeatMode(true);
  157. while(!stop){
  158. winClear();
  159. draw(jeu);
  160. stop=winDisplay();
  161. }
  162. winDisplay();
  163. pressSpace();
  164. winQuit();
  165. return 0;
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement