Не могу разобраться в отрывке кода - C (СИ)
Формулировка задачи:
Есть исходник игры, если со остальными функциями мне все относительно понятно. То с этим куском все довольно сложно
Функция построена на if else while, но я не могу понять цепочку действий. Прошу небольшое разъяснение, заранее спасибо!
void facetoface() { int i,c; gg=y; while(gg!=0) { gg=0; if(p!=1) { q=0; while(p!=1) { control(); system("cls"); ruc(); printf("\n Ходит Первый Игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); if ((q==1)&&(player[b][a]==1)) { q++; e=b; r=a; while(player[b][a+1]!=2) { w=a; a++; } w=a; a=r; } if ((q==1)&&(player[b][a]!=1)) { q=0; } if ((q==3)&&((e!=b)||(a>w))) { q=0; } if ((q==3)&&(e==b)&&(a==r)) { q=0; } if ((q==3)&&(e==b)&&(a<=w)) { player[e][r]=player[b][a]; shashku[e][r]=shashku[b][a]; player[b][a]=1; shashku[b][a]='*'; p=1; } system("cls"); ruc(); printf("\n Ходит Первый игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); } system("cls"); ruc(); printf("\n Ходит Второй Игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); } else { q=0; while(p!=0) { control(); system("cls"); ruc(); printf("\n Ходит Второй Игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); if ((q==1)&&(player[b][a]==2)) { q++; e=b; r=a; while(player[b][a-1]!=1) { w=a; a--; } w=a; a=r; } if ((q==1)&&(player[b][a]!=2)) { q=0; } if ((q==3)&&((e!=b)||(a=w)) { player[e][r]=player[b][a]; shashku[e][r]=shashku[b][a]; player[b][a]=2; shashku[b][a]='*'; p=0; } system("cls"); ruc(); printf("\n Ходит Второй Игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); } system("cls"); ruc(); printf("\n Ходит Первый Игрок"); printf("\n Управление клавишами дополнительной клавиатуры"); for(i=1; i<=y; i++) { for(c=1; c<=x; c++) { if((player[i][c]==1)&&((player[i][c+1]==0)||(player[i][c-1]==0))) { gg++; } } } } if(p!=0) { for(i=1; i<=y; i++) { for(c=1; c<=x; c++) { if((player[i][c]==2)&&((player[i][c-1]==0)||(player[i][c+1]==0))) { gg++; } } } } } if(p!=1) { printf("\n Победил Второй Игрок!!!"); } else { printf("\n Победил Первый Игрок!!!"); } getch(); }
Решение задачи: «Не могу разобраться в отрывке кода»
textual
Листинг программы
int y,x,k,a,b,z,n,p,gg,q,w,e,r,player[20][20],array[20][20];
Объяснение кода листинга программы
- Объявляются переменные: y, x, k, a, b, z, n, p, gg, q, w, e, r, player[20][20], array[20][20]
- Переменные y, x, k, a, b, z, n, p, gg, q, w, e, r являются целочисленными типами данных.
- Переменные player[20][20] и array[20][20] являются массивами 20x20, т.е. каждый из них содержит 20 строк по 20 элементов.
- Неизвестно, инициализированы ли переменные и массивы или нет, так как этот код представлен только в части объявления переменных.
- Код не содержит операторов или циклов, поэтому он ничего не делает, кроме объявления переменных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д