Ходы ферзя
На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки, которые он бьет. Клетку, где стоит ферзь, отметьте буквой “Q”, клетки, которые бьет ферзь, отметьте символами “*”, остальные клетки заполните точками.

Входные данные

Программа получает на вход два числа — координаты ферзя на шахматной доске. Каждая координата вводится на отдельной строке. Первое число обозначает номер строки, а второе — номер столбца. Все числа принимают значения от 1 до 8.

Выходные данные

Выведите на экран изображение доски.

Примеры
Ввод
Вывод
2
5
. . . * * * . .
* * * * Q * * *
. . . * * * . .
. . * . * . * .
. * . . * . . *
* . . . * . . .
. . . . * . . .
. . . . * . . .
Решите задачу на C++ или Python!!

Tatarin570 Tatarin570    2   01.04.2020 20:56    22

Ответы
ilinet ilinet  12.10.2020 12:21

#include <bits/stdc++.h>

using namespace std;

int main()

{

   char a[8][8];

   long long x, y, i, j;

   cin >> y >> x;

   for(i = 0; i < 8; i++){

       for(j = 0; j < 8; j++){

           a[i][j] = '.';

       }

   }

   x--;

   y--;

   

   

   

   if(x - y >= 0){

       i = 0;

       j = x - y;

   }

   else{

       j = 0;

       i = y - x;

   }

   for(;i < 8 and j < 8;){

       a[i][j] = '*';

       i++;

       j++;

   }

   

   

   

   if(x + y <= 7){

       i = 0;

       j = x + y;

   }

   else{

       j = 7;

       i = x + y - 7;

   }

   for(;i < 8 and j >= 0;){

       a[i][j] = '*';

       i++;

       j--;

   }

   

   

   

   i = 0;

   j = x;

   for(;i < 8; i++){

       a[i][j] = '*';

   }

   

   

   i = y;

   j = 0;

   for(;j < 8; j++){

       a[i][j] = '*';

   }

   

   

   a[y][x] ='Q';

   for(i = 0; i < 8; i++){

       for(j = 0; j < 8; j++){

           cout << a[i][j] << " ";

       }

       cout << '\n';

   }

   return 0;

}

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика