
Ходы ферзя На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки,
которые он бьет. Клетку, где стоит ферзь, отметьте буквой “Q”, клетки, которые бьет ферзь, отметьте символами “*”, остальные клетки заполните точками. Входные данные Программа получает на вход два числа — координаты ферзя на шахматной доске. Каждая координата вводится на отдельной строке. Первое число обозначает номер строки, а второе — номер столбца. Все числа принимают значения от 1 до 8. Выходные данные Выведите на экран изображение доски. Примеры Ввод Вывод 2 5 . . . * * * . . * * * * Q * * * . . . * * * . . . . * . * . * . . * . . * . . * * . . . * . . . . . . . * . . . . . . . * . . . решите с++

Ответы на вопрос

Ответ:
Код написан внизу, только я не знаю как дополнить ходы ферзя, но основная часть задачи написана, может быть тебе поможет)
Объяснение:
ki = int(input())
kj = int(input())
b = [['.'] * 12 for i in range(12)]
moves = [[1, 0], [-1, 0], [0, 1], [0, -1], [1, 1], [1, -1], [-1, 1], [-1,-1], [2], [5]]
ki += 1
kj += 1
for di, dj in moves:
i = ki + di
j = kj + dj
b[i][j] = '*'
b[ki][kj] = 'Q'
for row in b[2:-2]:
print(' '.join(row[2:-2]))



Для решения этой задачи на C++, вы можете использовать двумерный массив для представления шахматной доски и заполнить его в соответствии с заданными координатами ферзя и его ходами. Затем выведите полученное изображение доски на экран.
Вот пример C++ кода для решения этой задачи:
cpp#include <iostream>
using namespace std;
const int BOARD_SIZE = 8;
// Функция для отображения доски
void printBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
int main() {
int queenRow, queenCol;
char board[BOARD_SIZE][BOARD_SIZE];
// Инициализация доски с точками
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
board[i][j] = '.';
}
}
// Ввод координат ферзя
cout << "Введите номер строки ферзя (от 1 до 8): ";
cin >> queenRow;
cout << "Введите номер столбца ферзя (от 1 до 8): ";
cin >> queenCol;
// Преобразование координат из 1-based в 0-based
queenRow--;
queenCol--;
// Отмечаем ферзя на доске
board[queenRow][queenCol] = 'Q';
// Отмечаем клетки, которые бьет ферзь (горизонталь, вертикаль и диагонали)
for (int i = 0; i < BOARD_SIZE; i++) {
// Горизонталь
if (i != queenCol) {
board[queenRow][i] = '*';
}
// Вертикаль
if (i != queenRow) {
board[i][queenCol] = '*';
}
// Диагональ 1 (слева сверху вправо вниз)
int row = queenRow - (queenCol - i);
int col = i;
if (row >= 0 && row < BOARD_SIZE && col != queenCol) {
board[row][col] = '*';
}
// Диагональ 2 (слева снизу вправо вверх)
row = queenRow + (queenCol - i);
if (row >= 0 && row < BOARD_SIZE && col != queenCol) {
board[row][col] = '*';
}
}
// Выводим доску
printBoard(board);
return 0;
}
После запуска программы, она запросит координаты ферзя и выведет доску с отмеченными ферзем и его ходами клетками. Q обозначает ферзя, * обозначает клетки, которые ферзь бьет, а точки - свободные клетки.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili