SHOW:
|
|
- or go back to the newest paste.
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 |
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 |
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 |
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 |
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 |
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 |
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}; |
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. |
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. |
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. |
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. |
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}; |
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 | - | |
150 | + |