Нужно понять и сделать программу на питоне! Точнее - описать нужные функции. Названия не менять, также не должно быть файлового ввода вывода. 2055 год. Программа SpaceY отправляет космические экспедиции на окраины Солнечной системы. Для исследования планет используют роботов модели Rover-12, они хранят в памяти карту местности и свободно передвигаются по заданному маршруту. На случай экстренных ситуаций роботы поддерживают связь со станцией и оператором.
При высадке на Марс Rover-12 попал в магнитную бурю и часть его модулей вышла из строя. К счастью, передатчик для связи не поврежден.
Ты - оператор специальной группы и должен вышедшему из строя Rover-12 прибыть на станцию.
У тебя уже есть образец кода для настройки робота, но там не хватает нескольких функций, которые нужно дописать самостоятельно.
Каждую функцию проверит Куратор, это автоматизированная система, защищающая тонкий ИИ Rover-12 от вредоносного или ошибочного кода.
После проверки код можно перенести в итоговый файл rover12.py и запустить.
def genererate_positon() -> tuple:
...
def is_rover_arrived(rover_pos: tuple, station_pos: tuple) -> bool:
...
def get_direction(rover_pos: tuple, station_pos: tuple) -> str:
...
def move_rover(rover_pos: tuple, command: str) -> tuple:
...
def check_program(rover_pos: tuple, station_pos: tuple, commands: list) -> bool:
...
def run_test():
print("Тестовый запуск №")
start_pos = (0, 0)
rover_pos = start_pos
station_pos = genererate_positon(10)
print(f"1. Целевые координаты станции: {station_pos}")
print("2. Инициализация памяти программы...")
commands = []
print("3. Начинаем ввод команд...")
while not is_rover_arrived(rover_pos, station_pos):
print(f'#ТЕКУЩАЯ ПОЗИЦИЯ ПЛАНЕТОХОДА - {rover_pos}')
direction = get_direction(rover_pos, station_pos)
print(f"#ЦЕЛЕВОЕ НАПРАВЛЕНИЕ - {direction}")
print("#ВВЕДИТЕ КОМАНДУ")
command = input(">> ")
if command == "КОНЕЦ":
break
rover_pos = move_rover(rover_pos, command)
commands.append(command)
print("5. Ввод команд завершен...")
print("6. Запускаем верификацию программы...")
result = check_program(start_pos, station_pos, commands)
if result:
print("7. Верификация программы успешно! Тест пройден!")
else:
print("7. Внимание! Ошибка верификации!")
run_test()