РЕДАКТИРОВАТЬ
Похоже, что после моей опечатки в первоначальном посте произошла некоторая путаница, в которой для определения плоскости использовалась строчная буква o, а затем - заглавная. К сожалению, эта ошибка не была обнаружена в Песочнице. Так как многие члены написали ответы с обоими, и так как опечатка была моей ошибкой, я позволю использовать прописные или строчные буквы o в определении плоскости. Я добавил новое правило для этого.
Задний план
Мне нравятся ascii art анимации, как я их называю, так что вот еще одна. Я не думаю, что это слишком сложно реализовать, поэтому надеюсь получить короткие и интересные ответы.
Всем товарищам по сообществу
Если вы улучшили свой ответ, пожалуйста, измените количество байт на
старый счетчик байтов новый счетчик байтов
так что мы можем видеть ваш прогресс. Благодарность!
Вызов
Вот самолет ASCII
--O--
Вот взлетно-посадочная полоса
____| |____
Самолет начинается на 5 новых линий выше взлетно-посадочной полосы. Чтобы предотвратить любые столкновения между метрической и имперской системами и сделать это действительно международным вызовом, я не буду упоминать метры или футы. Пример:
--O--
____| |____
Самолет должен приземлиться точно в середине взлетно-посадочной полосы, как показано ниже:
____|--O--|____
вход
Начальное горизонтальное положение плоскости определяется целочисленным вводом, который используется для ссылки на кончик левого крыла, т.е. он находится в диапазоне от 0 до 10 включительно.
Выход
Каждый этап полета самолетов должен быть показан. Пример ниже (input = 10):
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
____|--O--|____
Для простоты мы игнорируем законы перспективы. Взлетно-посадочная полоса остается того же размера, как вы приближаетесь.
правила
- Обновление Середина плоскости может быть в верхнем или нижнем регистре o, но какой бы ни был выбран, он должен быть согласован во всем коде. Если ваш язык не поддерживает символы, указанные выше, не стесняйтесь использовать альтернативные символы только ascii.
- Самолет спускается на 1 строку за кадр.
- Самолет может двигаться только на 1 пробел влево или вправо каждый раз, когда он спускается на одну линию. Он не должен двигаться по каждой линии спуска. Пока он заканчивается на взлетно-посадочной полосе, это зависит от вас, когда он движется вправо или влево. Ты пилот!
- Обработка ошибок не требуется. Вы можете предположить, что входные данные всегда будут действительными целыми числами от 0 до 10 включительно.
- Вывод должен состоять только из символов, показанных выше (если ваш язык не поддерживает их, см. Первое отредактированное правило) и должен быть одинакового размера, т.е. должен начинаться с 6 строк в высоту и 15 символов в ширину. Высота может уменьшаться по мере продвижения, как в примере выше.
- Программа или функция в порядке, но должны выдавать результат, как показано выше.
- Лидирующие / завершающие пробелы / переводы строк меня устраивают.
- Пожалуйста, не стесняйтесь очищать экран между выходными кадрами, если хотите. Это не требование.
- Стандартные лазейки, как обычно, запрещены (хотя я не думаю, что есть много людей, которые бы помогли с этим вызовом).
- Это кодовый гольф, поэтому самый короткий ответ, очевидно, является победителем и, вероятно, получит большинство голосов, но не обязательно будет принят как лучший ответ, если какое-то действительно интересное решение придет на каком-то неожиданном языке, даже если оно длиннее. Не стесняйтесь публиковать все, что соответствует правилам, пока это работает.
Реализованная справочная реализация в Python 2 доступна на Попробуй онлайн! так что вы можете увидеть, как он выглядит для разных входных значений.