Как решить движение лодки с помощью алгоритма графика?Python

Программы на Python
Anonymous
Как решить движение лодки с помощью алгоритма графика?

Сообщение Anonymous »

Благодарим вашу помощь в решении следующей проблемы:

Сетка игры представляет собой водные и сухопутные массы. Сетка содержит значение True
, где это вода, и False, где это земля.
Лодка может перейти к следующей плитке в левом или правом направлении или переместиться
дважды вверх и вниз. направления. Все плитки на пути должны находиться
внутри сетки и содержать воду.
Реализуйте функцию can_travel_to, которая принимает матрицу сетки, начальные
координаты и координаты назначения (строку и столбец) и возвращает логическое значение
, указывающее, может ли лодка путешествовать между двумя точками за один шаг.
Например, следующий код:
game matrix = [
[False, False, True, True, False],
[False, False, True, False, False],
[False, False, True, True, False],
[False, True, False, True, False],
[False, False, True, False, False]
]

print(can_travel_to (game_matrix, 2, 2, 0, 2))
print(can_travel_to (game_matrix, 2, 2, 2, 1))
print(can_travel_to (game_matrix, 2, 2, 2, 3))
print(can_travel_to(game_matrix, 2, 2, 4, 2))

Should print:

True
False
True
False


Я прохожу один случай тестов, но не могу с двумя другими: все координаты внутри сетки, а некоторые координаты находятся вне сетки.
Перейдите по этой ссылке, чтобы протестировать свое решение TestDome
Текущее решение:

class BoatMovements:
def __init__(self, matrix, to_row, to_column):
self.row = to_row
self.column = to_column
self.matrix = matrix
self.visited = [
[False for _ in range(len(matrix[0]))]
for _ in range(len(matrix))
]

def valid_move(self, row, column):

if 0 len(game_matrix) - 1) or \
not game_matrix[from_row][from_column] or \
not game_matrix[to_row][to_column] or \
abs(to_row - from_row) > 2 or \
abs(to_column - from_column) > 1:
return False
except IndexError:
raise IndexError("The indexes must be valid indexes!")

boat_movements = BoatMovements(game_matrix, to_row, to_column)
return boat_movements.dfs_search(from_row, from_column)



Подробнее здесь: https://stackoverflow.com/questions/781 ... -algorithm

Вернуться в «Python»