Игра "жизнь" - найти и исправить ошибки в коде - C (СИ)
Формулировка задачи:
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <WinCon.h> #include <conio.h> #include <time.h> #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,seed; printf("Enter seed (0 for random seed):"); scanf("%d",&seed); if (seed==0) srand(time(NULL)); else srand(seed); system("cls"); for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) { a[i][j]=rand()%2; gotoxy(i,j); if(a[i][j]==1) printf("#"); else printf(" "); } while (!kbhit()) { Sleep(150); 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; } 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; }
Решение задачи: «Игра "жизнь" - найти и исправить ошибки в коде»
textual
Листинг программы
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;
Объяснение кода листинга программы
t=chk(i,j)==3
- здесь происходит проверка условияchk(i,j)==3
, и если оно истинно, то переменнойt
присваивается значение 3.b[i][j]=1
- если условие в первом шаге истинно, то в массивb
записывается единица.else if (t==2)
- если условие в первом шаге не выполнено, и значение переменнойt
равно 2, то происходит переход к этому блоку кода.b[i][j]=a[i][j]
- если значение переменнойt
равно 2, то в массивb
записываются значения из массиваa
.else *b[i][j]=0
- если условие в первом шаге не выполнено, и значение переменнойt
не равно 2, то в массивb
записывается ноль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д