View difference between Paste ID: gZxCshCr and QNxHkXpP
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+