Inspiriert von dieser Herausforderung
Tor:
Das Ziel ist es, Wellen auf einen Strand zu ziehen.
Eingang:
Sie erhalten 3 Ganzzahlen (in dem von Ihnen gewünschten Format) als Eingabe.
Die erste Ganzzahl gibt die Länge der Zeichnung an. Die zweite Ganzzahl gibt den Index der Sandbank an, auf der die Wellen beginnen (mindestens 3 Felder vom Strand entfernt).
Die dritte Ganzzahl gibt den Abstand zwischen den Wellen an (mindestens 3 Felder) größer als die Länge der Zeichnung sein, in diesem Fall zeichnen Sie nur eine Welle)
Ausgabe:
Die Ausgabe ist eine Zeichenbox, die die Wellen zeigt, die gegen den Strand schlagen. Die Zeichnung sollte enden, wenn die erste Welle den Strand erreicht hat.
Die Welle wird zunächst als Swell angezeigt ( _-_
).
Wenn die Welle die Sandbank passiert, beginnt sie zu scheiteln ( /c_
).
Schließlich kracht die Welle gegen den Strand ( /c.
=> _-_
=> ___
=> __.
).
Beispiele:
Eingabe: 14 4 6
Ausgabe:
-___________..
_-__________..
__-_________..
___-________..
___/c_______..
____/c______..
-____/c_____..
_-____/c____..
__-____/c___..
___-____/c__..
___/c____/c_..
____/c____/c..
-____/c____-_.
_-____/c_____.
__-____/c___..
Eingabe: 10, 2, 11
Ausgabe:
-_______..
_-______..
_/c_____..
__/c____..
___/c___..
____/c__..
_____/c_..
______/c..
_______-_.
_________.
________..
Eingabe: 6 0 3
c___..
/c__..
_/c_..
c_/c..
/c_-_.
_/c__.
c_/c..
Regeln:
Es gelten Standardlücken
Das ist Code-Golf, also gewinnt der kürzeste Code
·
ist nicht ASCII, was einige Sprachen ausschließen kann. Kann es durch ersetzt werden.
?·
anstelle der ASCII-Periode verwenden? (Es ist eigentlich ein ziemlich großer Gewinn in meinem Code.)Antworten:
JavaScript (ES6),
250 bis243 ByteDieser Code nimmt Codepage # 1252 an und verwendet das
·
Zeichen (0xB7). Übernimmt die Eingabe als 3 verschiedene Parameter(a,b,c)
.Wie es funktioniert
Dieser Code beginnt mit einer Zeichenfolge wie
-______··
und wendet bei jeder Iteration aufeinanderfolgende reguläre Ausdrücke an, um die Wellen zu animieren.Zum Beispiel
-__
wird ersetzt durch_-_
.Zuerst sah es nach einer vernünftigen Idee aus. Die Tatsache, dass die Zeichenfolge mit einem beginnen kann
c
(wie im dritten Testfall), macht die Dinge jedoch erheblich komplizierter.Testfälle
Code-Snippet anzeigen
quelle
Batch,
273243 BytesHinweis: Leerzeichen in Zeile 4 am Ende der Zeile. Wenn nur die beiden Strandzeichen unterschiedlich wären, könnte ich 3 Bytes speichern und JavaScript tatsächlich übertreffen!
quelle