Что делает данный кусок кода? - C (СИ)
Формулировка задачи:
void control() { int i_input; i_input=0; i_input = getch(); switch (i_input) { case 56: if(b>1) { b--; array[b][a]=3; array[b+1][a]=0; } break; case 50: if(b1) { a--; array[b][a]=3; array[b][a+1]=0; } break; case 54: if(a Заранее Спасибо.
Решение задачи: «Что делает данный кусок кода?»
textual
Листинг программы
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))) { 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]=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(); }
Объяснение кода листинга программы
Данный код представляет собой игру Нарды
с двумя игроками, где используется дополнительная клавиатура для управления.
- Объяснение кода:
- Переменная
gg
инициализируется как 0 и используется для подсчета очков в конце игры. - Переменная
y
представляет собой количество строк на доске (обычно 2 для нард). - Переменная
x
представляет собой количество столбцов на доске (обычно 4 для нард). - Переменная
player
представляет собой двумерный массив, который отслеживает текущие позиции игроков на доске. Значение 1 соответствует первому игроку, а 2 - второму. - Переменная
shashku
представляет собой двумерный массив, который отслеживает текущие позиции шашек на доске. Значение '*' соответствует шашке, которая находится на поле, а 1 или 2 - на базовой линии. - Переменная
p
отслеживает текущий игрок (0 - первый игрок, 1 - второй игрок). - Переменная
q
используется для отслеживания текущего хода игрока. - Переменные
e
иr
используются для отслеживания текущей позиции игрока на доске. - Переменные
w
иa
используются для отслеживания текущей позиции шашки игрока на доске. - В цикле
while(gg!=0)
происходит основной игровой процесс. - Внутренний цикл
while(p!=1)
выполняет действия, связанные с ходами первого игрока. - Внутренний цикл
while(p!=0)
выполняет действия, связанные с ходами второго игрока. - После окончания игры выводится сообщение о победителе.
- Переменная
- Список действий:
- Инициализация переменных
gg
,y
,x
,player
,shashku
,p
,q
,e
,r
,w
,a
. - Запуск цикла
while(gg!=0)
, который будет выполняться до тех пор, покаgg
не станет равным 0. - Внутри цикла
while(gg!=0)
выполняются следующие действия: - Проверка текущего игрока (переменная
p
). - Если
p
равно 1, то выполняются действия, связанные с ходами первого игрока. - Если
p
равно 0, то выполняются действия, связанные с ходами второго игрока. - Если
p
равно 3 и условие выполняется, то происходит ход первого игрока. - Если
p
равно 3 и условие выполняется, то происходит ход второго игрока. - Если
p
равно 0 и условие выполняется, то происходит ход первого игрока. - Если
p
равно 1 и условие выполняется, то происходит ход второго игрока. - Завершение хода игрока.
- После окончания игры выполняется проверка текущего игрока и выводится соответствующее сообщение о победителе.
- Код завершается функцией
getch()
, которая ожидает нажатия клавиши.
- Инициализация переменных
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д