Шахматы. Определить, допустим ли указанный ход конем в заданной корректной шахматной позиции - 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;

Объяснение кода листинга программы

  1. Создается двумерный массив d размером 8x8, где все элементы инициализируются значением 0.
  2. Задается начальная позиция коня, например, для белого игрока, и обозначается как (x,y).
  3. Проверяется, является ли указанный ход конем (т.е. проверяется, что текущая позиция коня отличается от его начальной позиции на 2 клетки по горизонтали и на 1 клетку по вертикали или наоборот).
  4. Если указанный ход конем допустим, то программа продолжает работу, иначе выводится сообщение об ошибке.
  5. В случае допустимого хода, программа выполняет ход конем, перемещая его на соответствующую клетку на доске (например, 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;).
  6. После выполнения хода, программа продолжает работу с обновленной позицией на доске.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы