Herausforderung
Bei Eingabe in der Form, <n1>, <n2>
in der die Zahl -1, 0 oder 1 sein kann, wird die entsprechende Himmelsrichtung zurückgegeben . Positive Zahlen bewegen sich auf der x-Achse nach Osten und auf der y-Achse nach Süden. Negative Zahlen bewegen sich auf der x-Achse nach Westen und auf der y-Achse nach Norden.
Ausgang muss in Form sein South East
, North East
, North
. Es wird zwischen Groß- und Kleinschreibung unterschieden.
Wenn die Eingabe 0, 0 ist, muss Ihr Programm zurückkehren That goes nowhere, silly!
.
Beispiel Input / Outpot:
1, 1
-> South East
0, 1
-> South
1, -1
-> North East
0, 0
-> That goes nowhere, silly!
Dies ist Code-Golf , die kürzeste Antwort in Bytes gewinnt.
code-golf
string
kolmogorov-complexity
Matias K
quelle
quelle
Antworten:
Japt ,
5551 BytesErläuterung
Probieren Sie es online!
quelle
Python
10187 BytesWirklich naive Lösung.
Vielen Dank an @Lynn für das Speichern von 14 Bytes! Änderungen: Mit der string.split-Methode wird es tatsächlich länger; _; Außerdem existieren in Python negative Indizes.
quelle
lambda x,y:('','South ','North ')[y]+('','East','West')[x]or'That goes nowhere, silly!'
lambda x,y:'North htuoS'[::x][:6]+'EastseW'[::y][:4]
Bearbeiten: Es wird wahrscheinlich jetzt zu lang sein, aber Sie können das zweite Schneiden durchführen[:6*x**2]
. Ebenso für die Ost / West-Zeichenfolge, wenn Sie den Fehler beim ersten Schneiden umgehen können.lambda x,y:('North ','South ')[y+1]+('West','East')[x+1]or'That goes nowhere, silly!'
ist um 2 Bytes kürzerSouth East
für(0, 0)
. Trotzdem danke!PHP, 101 Bytes
quelle
Perl 6 , 79 Bytes
Versuch es
Erweitert:
quelle
JavaScript (ES6),
1061009793 ByteEs ist ein sehr einfacher Ansatz. Es besteht aus ein paar ineinander verschachtelten ternären Operatoren -
Testfälle
quelle
a!=0
kann durch just ersetzt werdena
, da 0 falsch und alle anderen Werte wahr sind. Außerdem ist die Eingabe in der Currying-Syntax kürzer und der Array-Ansatz auch kürzer.f=a=>b=>
und Aufruf der Funktion wief(1729)(1458)
; Das ist dascurrying syntax
, was @ Luke erwähnt hat.a|b
anstelle von verwendena||b
. Angenommen, die Eingabe besteht nur aus -1, 0 oder 1 (was mir unklar ist), könnten Siea>0
undb>0
durch~a
und ersetzen~b
.a?(...):""
/b?(...):""
Batch, 156 Bytes
Die
for
Schleife fungiert als Nachschlagetabelle zum Filtern, wenn der (möglicherweise negierte) Parameter gleich -1 ist, und Verketten der übereinstimmenden Wörter. Wenn nichts ausgewählt ist, wird stattdessen die alberne Nachricht gedruckt.quelle
JavaScript (ES6), 86 Byte
Erläuterung
Nennen Sie es mit currying Syntax (
f(a)(b)
). Dies verwendet Array-Indizes. Wenn beidea
undb
0 sind, ist das Ergebnis eine falsch leere Zeichenfolge. In diesem Fall wird die Zeichenfolge nach dem||
zurückgegeben.Versuch es
Probieren Sie alle Testfälle hier aus:
quelle
GNU sed , 100 + 1 (r Flag) = 101 Bytes
Sed führt das Skript standardmäßig so oft aus, wie Eingabezeilen vorhanden sind, sodass bei Bedarf alle Testfälle in einem Durchgang ausgeführt werden können. Der unten stehende TIO-Link macht genau das.
Probieren Sie es online!
Erläuterung:
Der verbleibende Musterraum am Ende eines Zyklus wird implizit gedruckt.
quelle
05AB1E ,
484543 BytesProbieren Sie es online!
Erläuterung
quelle
Gelee , 40 Bytes
Probieren Sie es online!
quelle
Japt , 56 Bytes
Probieren Sie es online! |Test Suite
Erläuterung:
quelle
00
ist genau die gleiche wie0
, wie die zusätzliche Ziffer entfernt wird;)Retina ,
848281 Bytes1 Byte gespeichert, danke an @seshoumara für den Vorschlag
0...?
statt0\w* ?
Probieren Sie es online!
quelle
Nor
undSou
)0...?
.Schnelle 151 Bytes
quelle
PHP, 95 Bytes.
Dies zeigt einfach das Element des Arrays an, und wenn es nichts gibt, wird einfach die "Standard" -Meldung angezeigt.
Dies soll mit der
-r
Flagge ausgeführt werden und die Koordinaten als erstes und zweites Argument erhalten.quelle
C # ,
95102 BytesGolf gespielt
Ungolfed
Ungolfed lesbar
Vollständiger Code
Releases
+ 7 bytes
- Wrapped Snippet in eine Funktion.95 bytes
- Anfangslösung.Anmerkungen
Ich bin ein Geist, Boo!
quelle
(a,b)=>{...}
a=>b=>
. Möglicherweise benötigen Sie das()
um das Byte nicht.a|b
Möglicherweise können Sie interpolierte Zeichenfolgen verwenden, um den Aufbau der Zeichenfolge zu()
um diea|b
brauche ich es sonst nichtOperator '|' cannot be applied to operands of type 'int' and 'bool'
. Ich habe auch die interpolierten Zeichenfolgen ausprobiert, aber aufgrund der""
Fehler nicht viel gegeben .Scala, 107 Bytes
Probieren Sie es online aus
Um dies zu verwenden, deklarieren Sie dies als eine Funktion und rufen es auf:
Wie es funktioniert
quelle
C 103 Bytes
quelle
Java 7, 130 Bytes
Erläuterung:
Testcode:
Probieren Sie es hier aus.
Ausgabe:
quelle
CJam , 68 Bytes
Probieren Sie es online! oder überprüfen Sie alle Testfälle
Druckt ein Leerzeichen auf
[0 -1]
oder[0 1]
(North
oderSouth
).Erläuterung
quelle
Röda , 100 Bytes
Probieren Sie es online!
Dies ist eine triviale Lösung, ähnlich wie bei einigen anderen Antworten.
quelle