Шахматная доска: Проверить, есть ли угроза королю - C (СИ)
Формулировка задачи:
Формулировка.
На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по диагоналям). Проверить, есть ли угроза королю и если есть, то от кого именно. Позиция каждой шахматной фигуры задается в обычной нотации, например, d7.Формат входных данных:
[вертикальная позиция короля] [пробел] [горизонтальная позиция короля] [вертикальная позиция ладьи] [горизонтальная позиция ладьи] [вертикальная позиция слона] [горизонтальная позиция слона]. Пример: a1b2c3Формат выходных данных:
[вертикальная позиция той фигуры, которая бьет короля] [горизонтальная позиция той фигуры, которая бьет короля] [пробел] [вертикальная позиция той фигуры, которая бьет короля] [горизонтальная позиция той фигуры, которая бьет короля]. Фигуры выводятся в порядке их ввода. Если король не бьется ни одной фигурой, то выдается no solution. Пример: b1 c3// Chess 17.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <locale.h> int main() { setlocale(LC_ALL, "russian"); int gkk, gks, gkl; // Горизонтальные координаты короля, слона и ладьи соответственно char vkk, vks, vkl; // Вертикальные координаты короля, слона и ладьи соответственно printf ("Пожалуйста введите координаты фигур\n"); //Ввод данных printf ("Горизонтальная координата короля: \n"); scanf ("%d", &gkk); printf ("Вертикальная координата короля: \n"); scanf ("%с", &vkk); printf ("Координаты короля: %d%с\n",gkk,vkk); printf ("Горизонтальная координата ладьи: \n"); scanf ("%d", &gkl); printf ("Вертикальная координата ладьи: \n"); scanf ("%с", &vkl); printf ("Координаты ладьи: %d%с\n",gkl,vkl); printf ("Горизонтальная координата слона: \n"); scanf ("%d", &gks); printf ("Вертикальная координата слона: \n"); scanf ("%с", &vks); printf ("Координаты слона: %d%с\n",gks,vks); _getch (); return (0); }
Решение задачи: «Шахматная доска: Проверить, есть ли угроза королю»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <locale.h> char getChar() { char buff[32]; scanf( "%31s", buff ); return buff[0]; } int main() { setlocale(LC_ALL, "russian"); int gkk, gks, gkl; char vkk, vks, vkl; printf ("Please enter coordinates\n"); printf ("King hor: \n"); scanf ("%d", &gkk); printf ("King vert: \n"); vkk = getChar(); printf ("King: %d%c\n", gkk, vkk); printf ("Rook hor: \n"); scanf ("%d", &gkl); printf ("Rook vert: \n"); vkl = getChar(); printf ("Rook: %d%c\n", gkl, vkl); printf ("Bishop hor: \n"); scanf ("%d", &gks); printf ("Bishop vert: \n"); vks = getChar(); printf ("Bishop: %d%c\n", gks, vks); _getch (); return (0); }
Объяснение кода листинга программы
В этом коде происходит следующее:
- Считывание координат короля
- Пользователю предлагается ввести координаты короля (строка
King hor:
иKing vert:
). - С помощью функции
scanf
считывается горизонтальная координата короля и сохраняется в переменнойgkk
. - С помощью функции
getChar
считывается вертикальная координата короля и сохраняется в переменнойvkk
. - С помощью функции
printf
выводится сообщение с координатами короля (строкаKing: %d%c\n
, gkk, vkk).
- Пользователю предлагается ввести координаты короля (строка
- Считывание координат ладьи
- Пользователю предлагается ввести координаты ладьи (строка
Rook hor:
иRook vert:
). - С помощью функции
scanf
считывается горизонтальная координата ладьи и сохраняется в переменнойgkl
. - С помощью функции
getChar
считывается вертикальная координата ладьи и сохраняется в переменнойvkl
. - С помощью функции
printf
выводится сообщение с координатами ладьи (строкаRook: %d%c\n
, gkl, vkl).
- Пользователю предлагается ввести координаты ладьи (строка
- Считывание координат слона
- Пользователю предлагается ввести координаты слона (строка
Bishop hor:
иBishop vert:
). - С помощью функции
scanf
считывается горизонтальная координата слона и сохраняется в переменнойgks
. - С помощью функции
getChar
считывается вертикальная координата слона и сохраняется в переменнойvks
. - С помощью функции
printf
выводится сообщение с координатами слона (строкаBishop: %d%c\n
, gks, vks).
- Пользователю предлагается ввести координаты слона (строка
- Вывод сообщения об успешном вводе
- После ввода всех координат выводится сообщение
Successful input
.
- После ввода всех координат выводится сообщение
- Ожидание нажатия клавиши
- С помощью функции
_getch
программа ожидает нажатия клавиши.
- С помощью функции
- Завершение программы
- Программа возвращает 0, что означает успешное завершение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д