Форум программистов, компьютерный форум CyberForum.ru

Игра "жизнь" - разобраться в коде - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
16.05.2014, 19:49     Игра "жизнь" - разобраться в коде #1
помогите разобраться в коде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#define SIZE 20
 
int a[SIZE][SIZE],b[SIZE][SIZE];
 
int chk(int x, int y)
{
    int i=0;
    if (a[(x+SIZE-1)%SIZE][y]==1) i++;
    if (a[(x+SIZE-1)%SIZE][(y+SIZE-1)%SIZE]==1) i++;
    if (a[(x+SIZE-1)%SIZE][(y+1)%SIZE]==1) i++;
    if (a[x][(y+SIZE-1)%SIZE]==1) i++;
    if (a[x][(y+1)%SIZE]==1) i++;
    if (a[(x+1)%SIZE][(y+SIZE-1)%SIZE]==1) i++;
    if (a[(x+1)%SIZE][y]==1) i++;
    if (a[(x+1)%SIZE][(y+1)%SIZE]==1) i++;
    return i;
}
 
 
void gotoxy(short x,short y)
{
    COORD Coor;
    Coor.X=x; Coor.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE) ,Coor);
}
 
int main()
{
    int i,j,t;
    printf("Press any key to start ");
    getch();
    system("cls");
    srand(time(NULL));
 
    for(i=0;i<SIZE;i++)
        for(j=0;j<SIZE;j++)
        {
            a[i][j]=rand()%2;
            gotoxy(i,j);
            printf("%c",a[i][j]==1?'#':' ');
        }
    while (!kbhit())
    {
        Sleep(1000);
        for(i=2;i<SIZE;i++)
            for(j=0;j<SIZE;j++)
            {
                if (t=chk(i,j)==3) b[i][j]=1;
                else if (t==2) b[i][j]=a[i][j];
                else  b[i][j]=0;
            }
 
        for (i=0; i<SIZE;i++)
            for(j=0; j<SIZE; j++)
            {
                gotoxy(i,j);
                printf("%c",b[i][j]==1?'#':' ');
                a[i][j]=b[i][j];
            }
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2014, 19:49     Игра "жизнь" - разобраться в коде
Посмотрите здесь:

Игра "Жизнь" C++
C++ игра "жизнь"
C++ Игра "Жизнь"
C++ Игра "Жизнь"
Игра "Жизнь" и торообразный массив C++
игра "жизнь." C++
C++ Игра "Жизнь"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
16.05.2014, 20:38     Игра "жизнь" - разобраться в коде #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Создаются две матрицы 20х20 (a и b).
Матрица a рандомно заполняется 1 и 0.
И выводится на печать.
Потом каждую секунду запускается сначала цикл в котором вызывается функция chk(i, j),
которая в свою очередь нехитрым способом проверяет если по данным координатом матрицы а на столбце
по i и строке по j имеется 3 единицы то в ту же ячейку матрицы b приписывается 1.
Если 2 единицы то значение ячейки матрицы a приписывается матрице b.
В любом другом случае приписывается 0.
Далее цикл печати. Для печати используется функция gotoxy(i, j), которая проходит по матрице,
если наталкивается на 1 печатает #, если на 0 то пробел ' '.
В конечном итоге вся матрица заполнится пробелами.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
16.05.2014, 21:22  [ТС]     Игра "жизнь" - разобраться в коде #3
случайным образом заполняется??? 1 ??

srand(time(NULL)); или a[i][j]=rand()%2; что означает 2 ??
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
16.05.2014, 21:44     Игра "жизнь" - разобраться в коде #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
a[i][j]=rand()%2; рандомное число по модулю делится на 2. Результатом будет число 0 < 2, т.е. или 0 или 1.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
17.05.2014, 06:58  [ТС]     Игра "жизнь" - разобраться в коде #5
каким образом она проверяет ? КАЖДАЯ СТРОЧКА ЧТО ДЕЛАЕТ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int chk(int x, int y)
{
    int i=0;
    if (a[(x+SIZE-1)%SIZE][y]==1) i++;
    if (a[(x+SIZE-1)%SIZE][(y+SIZE-1)%SIZE]==1) i++;
    if (a[(x+SIZE-1)%SIZE][(y+1)%SIZE]==1) i++;
    if (a[x][(y+SIZE-1)%SIZE]==1) i++;
    if (a[x][(y+1)%SIZE]==1) i++;
    if (a[(x+1)%SIZE][(y+SIZE-1)%SIZE]==1) i++;
    if (a[(x+1)%SIZE][y]==1) i++;
    if (a[(x+1)%SIZE][(y+1)%SIZE]==1) i++;
    return i;
}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 18:40     Игра "жизнь" - разобраться в коде #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int chk(int x, int y)
{
    int i=0;
    if (a[(x+SIZE-1)%SIZE][y]==1) i++; /*Проверяется содержимое ячейки выше рассматриваемой.
    К примеру, если получены координаты x = 7, y = 11 будет проверяться содержимое ячейки a[6][11].
    x = 11, y = 15 проверяется a[10][15]
    x = 3, y = 18 проверяется a[2][18]
    При x = 0 или y = 0 или x = 19 или y = 19 ситуация чуть меняется
    x = 0, y = 9 проверяется a[19][9]
    Если ячейка содержит 1, инкрементируем i.*/
    if (a[(x+SIZE-1)%SIZE][(y+SIZE-1)%SIZE]==1) i++; /*С x координатой всё то же самое.
    Меняем координату y по тому же методу.
    x = 8, y = 3 проверяется a[7][2]
    x = 0, y = 0 проверяется a[19][19]*/
    if (a[(x+SIZE-1)%SIZE][(y+1)%SIZE]==1) i++; /*Проверяется сосед по диагонали справа.
    x = 8, y = 3 проверяется a[7][4]
    x = 0, y = 0 проверяется a[19][1]*/
    if (a[x][(y+SIZE-1)%SIZE]==1) i++; /*Не трогаем х. Меняем координату у. Сосед слева по строке.
    x = 8, y = 3 проверяется a[8][2]
    x = 0, y = 0 проверяется a[0][19]*/
    if (a[x][(y+1)%SIZE]==1) i++; /*Сосед справа по строке.
    x = 8, y = 3 проверяется a[8][4]
    x = 0, y = 0 проверяется a[0][1]
    x = 19, y = 19 проверяется a[19][0]*/
    if (a[(x+1)%SIZE][(y+SIZE-1)%SIZE]==1) i++; /*Нижний сосед по диагонали слева.
    x = 8, y = 3 проверяется a[9][2]
    x = 0, y = 0 проверяется a[1][19]*/
    if (a[(x+1)%SIZE][y]==1) i++; /*Нижний сосед по столбцу.
    x = 8, y = 3 проверяется a[9][3]
    x = 19, y = 0 проверяется a[0][0]*/
    if (a[(x+1)%SIZE][(y+1)%SIZE]==1) i++; /*Нижний сосед по диагонали справа.
    x = 8, y = 3 проверяется a[9][4]
    x = 19, y = 19 проверяется a[0][0]*/
    return i;
}
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
18.05.2014, 20:53  [ТС]     Игра "жизнь" - разобраться в коде #7
вопрос такой, как словами описать это
C++
1
2
for(i=2;i<SIZE;i++)
            for(j=0;j<SIZE;j++)
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 22:00     Игра "жизнь" - разобраться в коде #8
sektor2009, цикл в цикле (вложенный цикл).
Чтобы обойти все элементы матрицы, запускается цикл с индексом строки и вложенный цикл с индексом столбца,
который обходит все элементы строки по индексу главного цикла.
В вашем случае а[i][j], i - индекс строки, j - индекс столбца. После обхода всех элементов строки, вложенный
цикл останавливается, инкрементируется i и вложенный цикл начинает обход элементов следующей строки и.т.д.

Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[0, 0][0, 1][0, 2][0, 3][0, 4][0, 5][0, 6]...[0, 13][0, 14][0, 15][0, 16][0, 17][0, 18][0, 19]
 
[1, 0][1, 1][1, 2][1, 3][1, 4][1, 5][1, 6]...[1, 13][1, 14][1, 15][1, 16][1, 17][1, 18][1, 19]
 
[2, 0][2, 1][2, 2][2, 3][2, 4][2, 5][2, 6]...[2, 13][2, 14][2, 15][2, 16][2, 17][2, 18][2, 19]
 
[3, 0][3, 1][3, 2][3, 3][3, 4][3, 5][3, 6]...[3, 13][3, 14][3, 15][3, 16][3, 17][3, 18][3, 19]
 
[4, 0][4, 1][4, 2][4, 3][4, 4][4, 5][4, 6]...[4, 13][4, 14][4, 15][4, 16][4, 17][4, 18][4, 19]
 
[5, 0][5, 1][5, 2][5, 3][5, 4][5, 5][5, 6]...[5, 13][5, 14][5, 15][5, 16][5, 17][5, 18][5, 19]
 
[6, 0][6, 1][6, 2][6, 3][6, 4][6, 5][6, 6]...[6, 13][6, 14][6, 15][6, 16][6, 17][6, 18][6, 19]
 
...
 
[14, 0][14, 1][14, 2][14, 3][14, 4][14, 5]...[14, 14][14, 15][14, 16][14, 17][14, 18][14, 19]
 
[15, 0][15, 1][15, 2][15, 3][15, 4][15, 5]...[15, 14][15, 15][15, 16][15, 17][15, 18][15, 19]
 
[16, 0][16, 1][16, 2][16, 3][16, 4][16, 5]...[16, 14][16, 15][16, 16][16, 17][16, 18][16, 19]
 
[17, 0][17, 1][17, 2][17, 3][17, 4][17, 5]...[17, 14][17, 15][17, 16][17, 17][17, 18][17, 19]
 
[18, 0][18, 1][18, 2][18, 3][18, 4][18, 5]...[18, 14][18, 15][18, 16][18, 17][18, 18][18, 19]
 
[19, 0][19, 1][19, 2][19, 3][19, 4][19, 5]...[19, 14][19, 15][19, 16][19, 17][19, 18][19, 19]
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
20.05.2014, 19:41  [ТС]     Игра "жизнь" - разобраться в коде #9
Программа немного не правильно работает
возможно в этом ошибка
C++
1
2
3
4
5
{
                if (t=chk(i,j)==3) b[i][j]=1;
                else if (t==2) b[i][j]=a[i][j];
                else  b[i][j]=0;
            }
проверка на соседий должна такой
если 3 соседа и она пустая то поевляется новая
если 2 то она такаяж остается
как это реализовать??
если больше 3 или меньше 2 то она исчезает
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
20.05.2014, 19:56     Игра "жизнь" - разобраться в коде #10
C++
1
2
3
if (t=chk(i,j)==3 && a[i][j]==0) b[i][j]=1; //Если 3 соседа и пустая
else if (t==2) b[i][j]=a[i][j];
else  b[i][j]=0;
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
20.05.2014, 21:13  [ТС]     Игра "жизнь" - разобраться в коде #11
нет.. все правильно было так
C++
1
2
3
4
5
6
7
  {
                if ((t=chk(i,j))==3) b[i][j]=1; // если  имеется 3 единицы то в ту же ячейку матрицы b приписывается 1.
                else {
                    if(t==2) 
                    {b[i][j]=a[i][j];} //Если 2 единицы то значение ячейки матрицы a приписывается матрице b.
                else  b[i][j]=0;       // противном занулем
                }}
про анализировал и понял проблему...
проблема с границами т.е вот такую фигуру программа видит как вторую т.е не подвижную.. а должно из нее получиться квадрат
+++++8++8++++
+++++8++8++++
++++++88+++++
+++++++++++++
+++++++++++++
++++++88+++++
как
++++++88+++++
+++++8++8++++
+++++8++8++++
++++++88++++++
+++++++++++++
++++++++++++

Добавлено через 1 минуту
GuGo1991, помоги
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
20.05.2014, 21:43     Игра "жизнь" - разобраться в коде #12
sektor2009, вот такой вывод, что не так?

Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
                    
                    
   # #     #        
   #       ###      
            ##      
  # #               
           ### ## # 
      #        #    
 #    ##            
#      #      #     
         #       #  
         #          
            #       
        #           
       #  #         
       # #          
#      #  # ##   ###
#      #   ##      #
# #    ##           
#                   
 
++++++++++++++++++++
                    
                    
    #               
    #      # #      
   #       # #      
           #  #     
              #     
       #    # # #   
      ##            
      # #           
        #           
                    
                    
                    
         #          
      #   ##      ##
#     #     #     # 
      ##   ###      
#                   
 #                  
 
++++++++++++++++++++
                    
                    
                    
   #                
          #   #     
            ##      
                    
      #      # #    
      # #           
                    
       #            
                    
                    
                    
          #         
                   #
     ##   #  #      
            #      #
            #       
                    
 
++++++++++++++++++++
                    
                    
                    
                    
             #      
                    
            ###     
       #            
       #            
       #            
                    
                    
                    
                    
                    
                    
                    
           # #      
                    
                    
 
++++++++++++++++++++
                    
                    
                    
                    
                    
            # #     
                    
             #      
      # #           
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
 
++++++++++++++++++++
                    
                    
                    
                    
                    
                    
             #      
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
 
++++++++++++++++++++
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
 
++++++++++++++++++++
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
20.05.2014, 22:13  [ТС]     Игра "жизнь" - разобраться в коде #13
но тут не видно и границы не пересекаются
http://life.written.ru/ это онлайн игра жизнь

Добавлено через 13 минут
через несколько шагов я получаю такую штуку
+++++8++8++++
+++++8++8++++
++++++88+++++
+++++++++++++
+++++++++++++
++++++88+++++
из нее должно получиться квадрат
но программа ее видет как не подвижную фигуру (если визуально представить то нижнии грани касаются основной фигуры) типо так как
++++++88+++++
+++++8++8++++
+++++8++8++++
++++++88++++++
+++++++++++++
++++++++++++

Добавлено через 13 минут
надо сделать что бы программа не соединяла границы
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
20.05.2014, 22:35  [ТС]     Игра "жизнь" - разобраться в коде #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#define SIZE 15
 
int a[SIZE][SIZE],b[SIZE][SIZE];
 
int chk(int x, int y)
{
    int i=0;
    if (a[(x+SIZE-1)%SIZE][y]==1) i++; // Проверяется содержимое ячейки выше рассматриваемой по x
    if (a[(x+SIZE-1)%SIZE][(y+SIZE-1)%SIZE]==1) i++; // Меняем координату y
   if (a[(x+SIZE-1)%SIZE][(y+1)%SIZE]==1) i++; // Проверяется сосед по диагонали справа
    if (a[x][(y+SIZE-1)%SIZE]==1) i++; // Меняем координату у. Сосед слева по строке
    if (a[x][(y+1)%SIZE]==1) i++; // y Сосед справа по строке.
    if (a[(x+1)%SIZE][(y+SIZE-1)%SIZE]==1) i++; // Нижний сосед по диагонали слева.
    if (a[(x+1)%SIZE][y]==1) i++; // Нижний сосед по столбцу. x
    if (a[(x+1)%SIZE][(y+1)%SIZE]==1) i++; //Нижний сосед по диагонали справа.
    return i;
}
 
 
void gotoxy(short x,short y) // печатаем матрицу и проверяем на 1-0
{
    COORD Coor;
    Coor.X=x; Coor.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE) ,Coor);
}
 
int main()
{
    int i,j,t;
    printf("start ");
    getch();
    system("cls");
    srand(time(NULL));
 
    for(i=0;i<SIZE;i++)
        for(j=0;j<SIZE;j++)
        {
            a[i][j]=rand()%10; //  Матрица a рандомно заполняется 1 и 0.
            gotoxy(i,j);
            printf("%c",a[i][j]==1?'#':'.');
        }
    while (!kbhit()) // 1 , если нажата какая-либо клавиша на клавиатуре. В против*ном случае возвращается 0.
    {
        Sleep(10);
        system("PAUSE");
        for(i=2;i<SIZE;i++)
            for(j=0;j<SIZE;j++)
            {
                if ((t=chk(i,j))==3) b[i][j]=1; // если  имеется 3 единицы то в ту же ячейку матрицы b приписывается 1.
                else {
                    if(t==2) 
                    {b[i][j]=a[i][j];} //Если 2 единицы то значение ячейки матрицы a приписывается матрице b.
                else  b[i][j]=0;       // противном занулем
                }}
 
        for (i=0; i<SIZE;i++)             
            for(j=0; j<SIZE; j++)
            { 
                gotoxy(i,j);
                printf("%c",b[i][j]==1?'#':'.');
                a[i][j]=b[i][j];
                
            }
            
            
    }
    return 0;
}
проблема с границами т.е вот такую фигуру программа видит как вторую т.е не подвижную.. а должно из первой получиться квадрат...игра жизнь
+++++8++8++++
+++++8++8++++
++++++88+++++
+++++++++++++
+++++++++++++
++++++88+++++
как
++++++88+++++
+++++8++8++++
+++++8++8++++
++++++88++++++
+++++++++++++
++++++++++++

Добавлено через 53 минуты
как сделать что бы границы не граничили???

Добавлено через 40 секунд
т.е убрать тороедальную систему
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
20.05.2014, 23:02     Игра "жизнь" - разобраться в коде #15
sektor2009, понятно, попробую исправить

Добавлено через 26 минут
Меняем условия, границы не должны "склеиваться":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int chk(int x, int y)
{
    int i=0;
    if (a[(x+SIZE-1)%SIZE][y]==1 && x!=0) i++;
    if (a[(x+SIZE-1)%SIZE][(y+SIZE-1)%SIZE]==1 && x!=0 && y!=0) i++;
    if (a[(x+SIZE-1)%SIZE][(y+1)%SIZE]==1 && x!= 0 && y!=19) i++;
    if (a[x][(y+SIZE-1)%SIZE]==1 && y!=0) i++;
    if (a[x][(y+1)%SIZE]==1 && y!=19) i++;
    if (a[(x+1)%SIZE][(y+SIZE-1)%SIZE]==1 && x!=19 && y!=0) i++;
    if (a[(x+1)%SIZE][y]==1 && x!=19) i++;
    if (a[(x+1)%SIZE][(y+1)%SIZE]==1 && x!=19 && y!=19) i++;
    return i;
}
Плюс в цикле while в первом цикле for меняем первоначальное значение i на 0:
C++
1
2
3
4
5
6
7
for(i=0;i<SIZE;i++)
    for(j=0;j<SIZE;j++)
    {
        if (t=chk(i,j)==3) b[i][j]=1;
        else if (t==2) b[i][j]=a[i][j];
        else  b[i][j]=0;
    }
Вывод получился до бесконечности:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
/  #    ##### # ##   /
/ ## ##             #/
/                #   /
/  #     #       #   /
/ #     # #    #     /
/  #         #    # #/
/# #                 /
/#        # #   #    /
/        #      #    /
/           #   ##   /
/  #    #        #   /
/  # ###  ##  ##### #/
/ #     #     # ##  #/
/ # #       #        /
/  #  #    ## ##   # /
/           ##    #  /
/  #  #              /
/# #             # ##/
/## ###        #     /
/  #  #   # # #     #/
//////////////////////
/ # #                /
/   #    ###    ##   /
/ ###                /
/               #    /
/  #     #           /
/                    /
/                    /
/ #                  /
/          #   ##    /
/               ##   /
/   # ##   #         /
/ # #  ###        ## /
/   ####   # #    ## /
/          #  # #    /
/          #         /
/          ####      /
/ #               ## /
/  #  #              /
/   ##             ##/
/ # #                /
//////////////////////
/  #      #          /
/ # ##               /
/  #      #     ##   /
/ # #                /
/                    /
/                    /
/                    /
/                    /
/               ##   /
/              ##    /
/  # # #         ##  /
/   #     # #     ## /
/  # ###  # #    ### /
/    ##   #          /
/         ##  ##     /
/           #        /
/           ##       /
/   ##            # #/
/   ##               /
/  # #               /
//////////////////////
/   #                /
/   #                /
/ #  #               /
/  #                 /
/                    /
/                    /
/                    /
/                    /
/              ##    /
/                 #  /
/   #           #### /
/  #   #             /
/        #         # /
/   ## # ##       #  /
/          #         /
/           # #      /
/                    /
/   ##               /
/  #  #              /
/                    /
//////////////////////
/                    /
/  # #               /
/  ##                /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/              #  ## /
/                ##  /
/                # # /
/   # #   #          /
/       # #          /
/         #          /
/                    /
/                    /
/                    /
/   ##               /
/                    /
//////////////////////
/                    /
/                    /
/   #                /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                ##  /
/               ##   /
/                    /
/        #           /
/          #         /
/        #           /
/                    /
/                    /
/                    /
/                    /
/                    /
//////////////////////
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/               ##   /
/                ##  /
/                    /
/                    /
/         #          /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
//////////////////////
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                ##  /
/               ##   /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
//////////////////////
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/               ##   /
/                ##  /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
//////////////////////
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                ##  /
/               ##   /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
/                    /
//////////////////////
gromo
20.05.2014, 23:03
  #16

Не по теме:

сделайте меня развидеть это...

GuGo1991
20.05.2014, 23:07
  #17

Не по теме:

gromo, в чём проблема?

sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
20.05.2014, 23:28  [ТС]     Игра "жизнь" - разобраться в коде #18
к сожалению это не верное решение (((((
всеровно программа глючит с краницами .. теперь еще за рамки массива уходит
gromo
20.05.2014, 23:32
  #19

Не по теме:

я просто читаю вопросы ТС

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2014, 23:54     Игра "жизнь" - разобраться в коде
Еще ссылки по теме:

C++ Игра "Жизнь"
C++ Игра "Борьба за жизнь". Цель игры – убрать с доски все шашки противника
C++ Игра "Жизнь"; Нужно, чтобы первое поколение задавалось оператором (с клавиатуры)
Игра "Жизнь" с самым простым кодом C++
C++ Исправить ошибку в коде игры "Жизнь"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
20.05.2014, 23:54     Игра "жизнь" - разобраться в коде #20
sektor2009, должно сработать.
Учитывая предыдущий пост поменяйте значение i на 0.
Если результат будет не удовлетворительным поменяйте и условия.
C++
1
2
3
4
5
6
7
8
for(i=0;i<SIZE;i++)
    for(j=0;j<SIZE;j++)
    {
        t = chk(i,j);
        if(t==3) b[i][j]=1;
        else if (t==2) b[i][j]=a[i][j];
        else  b[i][j]=0;
    }
Добавлено через 6 минут

Не по теме:

gromo, ну надо же как-то помочь человеку )

Yandex
Объявления
20.05.2014, 23:54     Игра "жизнь" - разобраться в коде
Ответ Создать тему
Опции темы

Текущее время: 06:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru