1. Главная
  2. Библиотека
  3. Программирование
  4. Напишите программу, которая находит кратчайший путь для шахматного короля на доске 8x8, где несколько клеток недоступны дл...

Напишите программу, которая находит кратчайший путь для шахматного короля на доске 8x8, где несколько клеток недоступны для короля. Входные данные подаются в следующем порядке: * Количество препятствий * Координаты препятствий (пары чисел 1..8) *

«Напишите программу, которая находит кратчайший путь для шахматного короля на доске 8x8, где несколько клеток недоступны для короля. Входные данные подаются в следующем порядке: * Количество препятствий * Координаты препятствий (пары чисел 1..8) *»
  • Программирование

Условие:

Write a program finding a shortest path with a chess king on a chessboard 8x8 where several squares cannot be accessed (by the king).
Input is given in this ordering:
* Number of obstacles
* Coordinates of the obstacles (pairs of numbers 1.. 8)
* Coordinates of the starting square
* Coordinates of the end square.
Number of the obstacles is on a separate line, obstacles are described each on a separate line (i.e., one pair of numbers on a line). On a line the numbers are separated by the space-character.
Output is either -1 (if the king cannot reach the end-square) or the list of coordinates of all the squares of the path, from starting to ending square. If there exist more paths of the same length, print any of them.
_Sample input:_
1
2 1
1 1
3 3

_Appropriate output:_
1 1
2 2
3 3

Решение:

Для решения задачи о нахождении кратчайшего пути короля на шахматной доске 8x8 с препятствиями, мы можем использовать алгоритм поиска в ширину (BFS). Этот алгоритм подходит для поиска кратчайшего пути в невзвешенных графах, таких как шахматная доска. ### Шаги решения: 1. **Считывание входных данных**: Сначала мы считываем количество препятствий, их координаты, а также координаты начальной и конечной клеток. 2. **Инициализация доски**: Создаем шахматную доску и отмечаем клетки с препятствиями. 3. **Определение возможных движений короля**: Король может двигаться на одну клетку в любом направ...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет