giganciprogramowania

l16 gra w życie win

Apr 26th, 2023
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include<windows.h>
  3. using namespace std;
  4.  
  5. const int rozmiar = 20;
  6.  
  7. void wyswietl(int tab[rozmiar][rozmiar])
  8. {
  9. for (int i = 0; i < rozmiar; i++)
  10. {
  11. for (int j = 0; j < rozmiar; j++)
  12. {
  13. if (tab[i][j] == 0)
  14. {
  15. cout << " ";
  16. }
  17. else
  18. {
  19. cout << "X";
  20. }
  21. }
  22. cout << endl;
  23. }
  24. }
  25.  
  26. int policz_sasiadow(int tab[rozmiar][rozmiar], int i, int j)
  27. {
  28. int sasiedzi = 0;
  29. int gora;
  30. int dol;
  31. int srodekGoraDol;
  32. int prawo;
  33. int lewo;
  34. int srodekPrawoLewo;
  35.  
  36. if (i == 0)
  37. {
  38. gora = rozmiar - 1;
  39. srodekGoraDol = 0;
  40. dol = 1;
  41. }
  42. else if (i == rozmiar - 1)
  43. {
  44. gora = rozmiar - 2;
  45. srodekGoraDol = rozmiar - 1;
  46. dol = 0;
  47. }
  48. else
  49. {
  50. gora = i - 1;
  51. srodekGoraDol = i;
  52. dol = i + 1;
  53. }
  54. if (j == 0)
  55. {
  56. lewo = rozmiar - 1;
  57. srodekPrawoLewo = 0;
  58. prawo = 1;
  59. }
  60. else if (j == rozmiar - 1)
  61. {
  62. lewo = rozmiar - 2;
  63. srodekPrawoLewo = rozmiar - 1;
  64. prawo = 0;
  65. }
  66. else
  67. {
  68. lewo = j - 1;
  69. srodekPrawoLewo = j;
  70. prawo = j + 1;
  71. }
  72.  
  73. sasiedzi += tab[gora][lewo];
  74. sasiedzi += tab[srodekGoraDol][lewo];
  75. sasiedzi += tab[dol][lewo];
  76. sasiedzi += tab[gora][srodekPrawoLewo];
  77. sasiedzi += tab[dol][srodekPrawoLewo];
  78. sasiedzi += tab[gora][prawo];
  79. sasiedzi += tab[srodekGoraDol][prawo];
  80. sasiedzi += tab[dol][prawo];
  81. return sasiedzi;
  82. }
  83.  
  84.  
  85. void pokolenie(int tab[rozmiar][rozmiar])
  86. {
  87.  
  88. int nowa_tab[rozmiar][rozmiar]={0};
  89.  
  90. for (int i = 0; i < rozmiar; i++)
  91. {
  92. for (int j = 0; j < rozmiar; j++)
  93. {
  94. int sasiedzi = policz_sasiadow(tab, i, j);
  95. if (tab[i][j] == 1 && sasiedzi < 2)
  96. {
  97. nowa_tab[i][j] = 0;
  98. }
  99. else if (tab[i][j] == 1 && sasiedzi > 3)
  100. {
  101. nowa_tab[i][j] = 0;
  102. }
  103. else if (tab[i][j] == 1)
  104. {
  105. nowa_tab[i][j] = 1;
  106. }
  107. else if (tab[i][j] == 0 && sasiedzi == 3)
  108. {
  109. nowa_tab[i][j] = 1;
  110. }
  111. }
  112. }
  113.  
  114. for (int i = 0; i < rozmiar; i++)
  115. {
  116. for (int j = 0; j < rozmiar; j++)
  117. {
  118. tab[i][j] = nowa_tab[i][j];
  119. }
  120. }
  121. }
  122.  
  123. void dodaj_populacje(int tab[rozmiar][rozmiar], int ilosc)
  124. {
  125. for (int i = 0; i < ilosc; i++)
  126. {
  127. tab[rand() % rozmiar][rand() % rozmiar] = 1;
  128. }
  129. }
  130.  
  131.  
  132. void graj_dzwiek(int rozmiarPopulacji)
  133. {
  134. Beep(rozmiarPopulacji, 500);
  135. }
  136.  
  137.  
  138. int policz_populacje(int tab[rozmiar][rozmiar])
  139. {
  140. int rozmiarPopulacji = 0;
  141. for (int i = 0; i < rozmiar; i++)
  142. {
  143. for (int j = 0; j < rozmiar; j++)
  144. {
  145. rozmiarPopulacji += tab[i][j];
  146. }
  147. }
  148. return rozmiarPopulacji;
  149. }
  150.  
  151.  
  152. void zmiana_koloru(int kolor)
  153. {
  154. if (kolor == 0)
  155. {
  156. system("Color 71");
  157. }
  158. else if (kolor == 1)
  159. {
  160. system("Color 72");
  161. }
  162. else if (kolor == 2)
  163. {
  164. system("Color 74");
  165. }
  166. else if (kolor == 3)
  167. {
  168. system("Color 70");
  169. }
  170. }
  171. int main()
  172. {
  173. int plansza[rozmiar][rozmiar] = { 0 };
  174. int nrPokolenia = 0;
  175. int liczbaPopulacji = 0;
  176.  
  177. plansza[9][8] = 1;
  178. plansza[9][10] = 1;
  179. plansza[10][10] = 1;
  180. plansza[10][9] = 1;
  181. plansza[11][9] = 1;
  182. system("Color 7A");
  183. int wybor;
  184. while (true)
  185. {
  186. system("cls");
  187. nrPokolenia++;
  188. liczbaPopulacji = policz_populacje(plansza);
  189. cout << "Numer pokolenia: " << nrPokolenia << " ilosc osobnikow: " << liczbaPopulacji << endl;
  190. wyswietl(plansza);
  191. cout << endl << endl;
  192. cout << "Co chcesz zrobic?" << endl;
  193. cout << "1-Kolejne pokolenie" << endl;
  194. cout << "2-Zakoncz symulacje" << endl;
  195. cout << "3-Zmien kolor" << endl;
  196. cout << "4-Dodaj populacje" << endl;
  197. cout << "5-Zagraj dzwiek pokolenia" << endl;
  198.  
  199.  
  200.  
  201.  
  202. cin >> wybor;
  203. switch (wybor)
  204. {
  205. case 1 :
  206. pokolenie(plansza);
  207. break;
  208. case 2:
  209. exit(0);
  210. break;
  211. case 3:
  212. zmiana_koloru(rand() % 4);
  213. break;
  214. case 4:
  215. int dodanaPopulacja;
  216. cout << "Ile populacji chcesz dodac?" << endl;
  217. cin >> dodanaPopulacja;
  218. dodaj_populacje(plansza, dodanaPopulacja);
  219. liczbaPopulacji = policz_populacje(plansza);
  220. break;
  221. case 5:
  222. graj_dzwiek(liczbaPopulacji);
  223. break;
  224.  
  225.  
  226. default:
  227. cout << "Blad symulacji, nieznane polecenie" << endl;
  228. break;
  229.  
  230.  
  231. }
  232.  
  233.  
  234. }
  235.  
  236. }
Add Comment
Please, Sign In to add comment