Вопрос задан 12.07.2023 в 20:45. Предмет Информатика. Спрашивает Белецька Андріана.

Ходы ферзя На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки,

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сапожников Данила.

Ответ:

Код написан внизу, только я не знаю как дополнить ходы ферзя, но основная часть задачи написана, может быть тебе поможет)

Объяснение:

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]))

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на 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 обозначает ферзя, * обозначает клетки, которые ферзь бьет, а точки - свободные клетки.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос