Шахматы. Определить, допустим ли указанный ход конем в заданной корректной шахматной позиции - C (СИ)
Формулировка задачи:
задача поставлена так:Определить, допустим ли указанный ход конем в заданной корректной шахматной позиции.
Я написал кусок кода,где проверяется может ли конь сделать указанный ход.При этом подглядел где-то на форуме условия на а,b,c,d.Но не пойму почему они именно такие.А еще,что значит (int) перед а в условии(int)a < 65?
Дальше,я так полагаю,я должен задать позиции фигур и проверить стоит ли на месте,куда "хочет" походить мой конь другая фигура.
вопрос:как задавать цвета фигур и как определить есть ли на данной клетке фигура?
#include <stdio.h> int main(void) { char a,b,z; char c,d; scanf("%c %c %c %c %c",&a,&c,&z,&b,&d); if(z != '-' || ((int)a < 65 || (int)a > 72) || ((int)b < 65 || (int)b > 72) || (int)c < 49 || (int)c > 56 || (int)d < 49 || (int)d > 56) { printf("ERROR"); } else { if((a - 1 == b && c + 2 == d) || (a - 1 == b && c - 2 == d) || (a + 1 == b && c + 2 == d) || (a + 1 == b && c - 2 ==d )|| (a - 2 == b && c + 1 == d) || (a - 2 == b && c - 1 == d) || (a + 2 == b && c + 1 == d) || (a + 2 == b && b - 1 == d)) { printf("YES"); } else { printf("NO"); } } return 0; }
Решение задачи: «Шахматы. Определить, допустим ли указанный ход конем в заданной корректной шахматной позиции»
textual
Листинг программы
for(i=0; i<8; i++) for(j=0; j<8; j==) d[i][j] = 0;
Объяснение кода листинга программы
- Создается двумерный массив d размером 8x8, где все элементы инициализируются значением 0.
- Задается начальная позиция коня, например, для белого игрока, и обозначается как (x,y).
- Проверяется, является ли указанный ход конем (т.е. проверяется, что текущая позиция коня отличается от его начальной позиции на 2 клетки по горизонтали и на 1 клетку по вертикали или наоборот).
- Если указанный ход конем допустим, то программа продолжает работу, иначе выводится сообщение об ошибке.
- В случае допустимого хода, программа выполняет ход конем, перемещая его на соответствующую клетку на доске (например, d[x+2][y+1] = d[x][y]; d[x][y+1] = d[x+2][y]; d[x+2][y] = d[x][y+1]; d[x][y] = 0;).
- После выполнения хода, программа продолжает работу с обновленной позицией на доске.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д