EDITAR
Parece que ha habido cierta confusión después de mi error tipográfico en la publicación original que usaba una o minúscula para definir el plano y luego una mayúscula. Lamentablemente, este error no se detectó en el Sandbox. Dado que muchos miembros han escrito respuestas con ambos y dado que el error tipográfico fue mi culpa, permitiré o mayúsculas o minúsculas en la definición del plano. He agregado una nueva regla para esto.
Fondo
Me gustan las animaciones de arte ascii, ya que tiendo a llamarlas, así que aquí hay otra. No creo que esto sea demasiado difícil de implementar, por lo que espero obtener algunas respuestas cortas e interesantes.
A todos los miembros de la comunidad.
Si mejora su respuesta, modifique su recuento de bytes como
recuento de bytes antiguos recuento de bytes nuevos
para que podamos ver tu progreso. ¡Gracias!
Reto
Aquí hay un avión ascii
--O--
Aquí hay una pista ascii
____| |____
El avión comienza en 5 líneas nuevas sobre la pista. Para evitar enfrentamientos entre los sistemas métrico e imperial y hacer de este un verdadero desafío internacional, no mencionaré metros ni pies. Ejemplo:
--O--
____| |____
El avión debe aterrizar exactamente en el medio de la pista como se muestra a continuación:
____|--O--|____
Entrada
La posición horizontal inicial del plano está definida por una entrada entera que se usa para hacer referencia a la punta del ala izquierda, es decir, está entre 0 y 10 inclusive.
Salida
Se debe mostrar cada etapa del vuelo del avión. Ejemplo a continuación (input = 10):
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
____|--O--|____
Para mantener las cosas simples, estamos ignorando las leyes de la perspectiva. La pista permanece del mismo tamaño a medida que te acercas.
Reglas
- Actualización El centro del plano puede ser mayúscula o minúscula, pero el que se elija debe ser coherente en todo el código. Si su idioma no es compatible con los caracteres anteriores, siéntase libre de usar caracteres alternativos solo ascii.
- El avión desciende 1 línea por cuadro.
- El avión solo puede moverse 1 espacio hacia la izquierda o hacia la derecha cada vez que desciende una línea. No tiene que moverse en cada línea de descenso. Mientras termine en la pista, depende de usted cuando se mueve hacia la derecha o hacia la izquierda. Eres el piloto!
- No se requiere manejo de errores. Puede suponer que la entrada siempre será un número entero válido de 0-10 inclusive.
- La salida debe constar solo de los caracteres que se muestran arriba (si su idioma no los admite, consulte la primera regla editada) y debe tener el mismo tamaño, es decir, debe comenzar con 6 líneas de alto por 15 caracteres de ancho. La altura puede disminuir a medida que avanza como en el ejemplo anterior.
- El programa o la función está bien, pero debe producir una salida como se muestra arriba.
- Los espacios iniciales / finales / nuevas líneas están bien para mí.
- Si lo desea, puede borrar la pantalla entre fotogramas de salida. Esto no es un requisito.
- Las lagunas estándar están prohibidas como de costumbre (aunque no creo que haya muchas que ayuden con este tipo de desafío).
- Este es el código de golf, por lo que la respuesta más corta es obviamente la ganadora y probablemente obtendrá la mayoría de los votos, pero no necesariamente se aceptará como la mejor respuesta si surge una solución realmente interesante en un lenguaje inesperado, incluso si es más larga. Siéntase libre de publicar cualquier cosa que cumpla con las reglas siempre que funcione.
Implementación de referencia sin golf en Python 2 disponible en ¡ Pruébelo en línea! para que pueda ver cómo se ven los diferentes valores de entrada.