BEARBEITEN
Es scheint, dass es nach meinem Tippfehler im ursprünglichen Beitrag einige Verwirrung gab, bei dem ein Kleinbuchstabe o zum Definieren der Ebene und später ein Großbuchstabe o verwendet wurden. Leider wurde dieser Fehler nicht in der Sandbox gefunden. Da viele Mitglieder mit beiden Antworten geschrieben haben und der Tippfehler mein Fehler war, werde ich in der Definition der Ebene entweder Groß- oder Kleinbuchstaben o zulassen. Ich habe dafür eine neue Regel hinzugefügt.
Hintergrund
Ich mag ASCII-Kunstanimationen, wie ich sie nenne, und hier ist eine andere. Ich denke nicht, dass es zu schwierig ist, dies umzusetzen, deshalb werden wir hoffentlich einige kurze und interessante Antworten erhalten.
An alle anderen Community-Mitglieder
Wenn Sie Ihre Antwort verbessern, ändern Sie bitte Ihre Byteanzahl als
alte Byteanzahl neue Byteanzahl
So können wir Ihren Fortschritt sehen. Vielen Dank!
Herausforderung
Hier ist ein ASCII-Flugzeug
--O--
Hier ist eine ASCII-Landebahn
____| |____
Das Flugzeug startet an 5 Zeilen oberhalb der Landebahn. Um Zusammenstöße zwischen metrischen und imperialen Systemen zu vermeiden und dies zu einer wahrhaft internationalen Herausforderung zu machen, erwähne ich weder Meter noch Fuß. Beispiel:
--O--
____| |____
Das Flugzeug muss genau in der Mitte der Landebahn landen, wie unten gezeigt:
____|--O--|____
Eingang
Die anfängliche horizontale Position der Ebene wird durch eine Ganzzahleingabe definiert, die verwendet wird, um die Spitze des linken Flügels zu referenzieren, dh sie liegt zwischen 0 und einschließlich 10.
Ausgabe
Jede Stufe des Flugzeugfluges muss gezeigt werden. Beispiel unten (Eingabe = 10):
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
--O--
____| |____
____|--O--|____
Um die Dinge einfach zu halten, ignorieren wir die Gesetze der Perspektive. Die Landebahn bleibt gleich groß, wenn Sie näher kommen.
Regeln
- Aktualisieren Die Mitte der Ebene kann entweder in Groß- oder Kleinbuchstaben angegeben werden. Wenn Ihre Sprache die oben genannten Zeichen nicht unterstützt, können Sie auch alternative ASCII-Zeichen verwenden.
- Die Ebene senkt sich um 1 Linie pro Frame.
- Die Ebene kann sich jedes Mal, wenn sie um eine Linie absteigt, nur 1 Feld nach links oder rechts bewegen. Es muss sich nicht auf jeder Abstiegslinie bewegen. Solange es auf der Landebahn endet, liegt es an Ihnen, ob Sie sich nach rechts oder links bewegen. Du bist der Pilot!
- Keine Fehlerbehandlung erforderlich. Sie können davon ausgehen, dass die Eingabe immer eine gültige Ganzzahl von 0 bis einschließlich 10 ist.
- Die Ausgabe darf nur aus den oben gezeigten Zeichen bestehen (falls Ihre Sprache diese nicht unterstützt, siehe bearbeitete erste Regel) und muss dieselbe Größe haben, dh 6 Zeilen hoch und 15 Zeichen breit beginnen. Die Höhe kann sich im Verlauf verringern, wie im obigen Beispiel.
- Programm oder Funktion ist in Ordnung, muss aber eine Ausgabe wie oben gezeigt erzeugen.
- Führende / nachfolgende Leerzeichen / Zeilenumbrüche sind von mir in Ordnung.
- Wenn Sie möchten, können Sie den Bildschirm zwischen den Ausgabebildern löschen. Dies ist keine Voraussetzung.
- Standard-Schlupflöcher sind wie üblich verboten (obwohl ich nicht glaube, dass es viele gibt, die bei dieser Art von Herausforderung helfen würden).
- Dies ist Codegolf, so dass die kürzeste Antwort offensichtlich der Gewinner ist und wahrscheinlich die meisten Stimmen erhalten wird, aber möglicherweise nicht als die beste Antwort akzeptiert wird, wenn eine wirklich interessante Lösung in einer unerwarteten Sprache vorliegt, auch wenn sie länger ist. Fühlen Sie sich frei, alles zu posten, was den Regeln entspricht, solange es funktioniert.
Ungolfed-Referenzimplementierung in Python 2 verfügbar unter Try it online! So können Sie sehen, wie es für verschiedene Eingabewerte aussieht.