Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2023
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. //Na kompilatorze online #include <stdio.h> zamiast <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. void wyswietl(int tab[20][20])
  8. {
  9. for (int i = 0; i < 20; i++)
  10. {
  11. for (int j = 0; j < 20; 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[20][20], 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. //pole znajduje się w pierwszym wierszu
  37. if (i == 0)
  38. {
  39. gora = 19;
  40. srodekGoraDol = 0;
  41. dol = 1;
  42. }
  43. //pole znajduje się w ostatnim wierszu
  44. else if (i == 19)
  45. {
  46. gora = 18;
  47. srodekGoraDol = 19;
  48. dol = 0;
  49. }
  50. //pole znajduje się w jednym z pozostałych wierszy
  51. else
  52. {
  53. gora = i - 1;
  54. srodekGoraDol = i;
  55. dol = i + 1;
  56. }
  57. //pole znajduje się w pierwszej kolumnie
  58. if (j == 0)
  59. {
  60. lewo = 19;
  61. srodekPrawoLewo = 0;
  62. prawo = 1;
  63. }
  64. //pole znajduje się w ostatniej kolumnie
  65. else if (j == 19)
  66. {
  67. lewo = 18;
  68. srodekPrawoLewo = 19;
  69. prawo = 0;
  70. }
  71. //pole znajduje się w jednej z pozostalych kolumn
  72. else
  73. {
  74. lewo = j - 1;
  75. srodekPrawoLewo = j;
  76. prawo = j + 1;
  77. }
  78.  
  79. sasiedzi += tab[gora][lewo];
  80. sasiedzi += tab[srodekGoraDol][lewo];
  81. sasiedzi += tab[dol][lewo];
  82. sasiedzi += tab[gora][srodekPrawoLewo];
  83. sasiedzi += tab[dol][srodekPrawoLewo];
  84. sasiedzi += tab[gora][prawo];
  85. sasiedzi += tab[srodekGoraDol][prawo];
  86. sasiedzi += tab[dol][prawo];
  87. return sasiedzi;
  88. }
  89.  
  90. void pokolenie(int tab[20][20])
  91. {
  92.  
  93. int nowa_tab[20][20] = {0};
  94.  
  95. for (int i = 0; i < 20; i++)
  96. {
  97. for (int j = 0; j < 20; j++)
  98. {
  99. int sasiedzi = policz_sasiadow(tab, i, j);
  100. //Żywa komórka, która ma mniej niż dwóch sąsiadów, w kolejnym kroku umiera.
  101. if (tab[i][j] == 1 && sasiedzi < 2)
  102. {
  103. nowa_tab[i][j] = 0;
  104. }
  105. //Żywa komórka, która ma więcej niż trzech sąsiadów, w kolejnym kroku umiera.
  106. else if (tab[i][j] == 1 && sasiedzi > 3)
  107. {
  108. nowa_tab[i][j] = 0;
  109. }
  110. //Żywa komórka, która ma dwóch lub trzech sąsiadów – przeżywa.
  111. else if (tab[i][j] == 1)
  112. {
  113. nowa_tab[i][j] = 1;
  114. }
  115. //Martwa komórka, która ma trzech żywych sąsiadów – w kolejnym kroku ożywa.
  116. else if (tab[i][j] == 0 && sasiedzi == 3)
  117. {
  118. nowa_tab[i][j] = 1;
  119. }
  120. }
  121. }
  122.  
  123. for (int i = 0; i < 20; i++)
  124. {
  125. for (int j = 0; j < 20; j++)
  126. {
  127. tab[i][j] = nowa_tab[i][j];
  128. }
  129. }
  130. }
  131.  
  132. int main()
  133. {
  134.  
  135. int plansza[20][20] = {0};
  136. plansza[9][8] = 1;
  137. plansza[9][10] = 1;
  138. plansza[10][10] = 1;
  139. plansza[10][9] = 1;
  140. plansza[11][9] = 1;
  141.  
  142. while (true)
  143. {
  144. system("cls");
  145. wyswietl(plansza);
  146. pokolenie(plansza);
  147. system("pause");
  148. }
  149. }
  150.  
  151.  
  152. int main()
  153. {
  154.  
  155. int plansza[20][20] = {0};
  156. plansza[9][8] = 1;
  157. plansza[9][10] = 1;
  158. plansza[10][10] = 1;
  159. plansza[10][9] = 1;
  160. plansza[11][9] = 1;
  161.  
  162. while (true)
  163. {
  164. system("cls");
  165. // kompilator online printf("\033[H\033[J");
  166. wyswietl(plansza);
  167. pokolenie(plansza);
  168. cout << "Wcisnij enter aby kontynuować"<<endl;
  169. system("pause");
  170. // kompilator online getchar();
  171. }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement