Ходы ферзя
На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки, которые он бьет. Клетку, где стоит ферзь, отметьте буквой “Q”, клетки, которые бьет ферзь, отметьте символами “*”, остальные клетки заполните точками.
Входные данные
Программа получает на вход два числа — координаты ферзя на шахматной доске. Каждая координата вводится на отдельной строке. Первое число обозначает номер строки, а второе — номер столбца. Все числа принимают значения от 1 до 8.
Выходные данные
Выведите на экран изображение доски.
Примеры
Ввод
Вывод
2
5
. . . * * * . .
* * * * Q * * *
. . . * * * . .
. . * . * . * .
. * . . * . . *
* . . . * . . .
. . . . * . . .
. . . . * . . .
Решите задачу на C++ или Python!!
Answers & Comments
Ответ:
#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;
}
Объяснение: