Défi
Étant donné l'entrée sous la forme <n1>, <n2>
où le nombre peut être -1, 0 ou 1, retournez la direction cardinale correspondante . Les nombres positifs se déplacent vers l'est sur l'axe des x et le sud sur l'axe des y, les nombres négatifs se déplacent vers l'ouest sur l'axe des x et le nord sur l'axe des y.
Sortie doit être sous la forme South East
, North East
, North
. Il est sensible à la casse.
Si l'entrée est 0, 0, votre programme doit revenir That goes nowhere, silly!
.
Exemple d'entrée / sortie:
1, 1
-> South East
0, 1
-> South
1, -1
-> North East
0, 0
-> That goes nowhere, silly!
C'est le code-golf , la réponse la plus courte en octets gagne.
code-golf
string
kolmogorov-complexity
Matias K
la source
la source
Réponses:
Japt ,
5551 octetsExplication
Essayez-le en ligne!
la source
Python,
10187 octetsSolution vraiment naïve.
Merci à @Lynn pour avoir économisé 14 octets! Modifications: l'utilisation de la méthode string.split allonge la durée; _; Et aussi, des indices négatifs existent en python.
la source
lambda x,y:('','South ','North ')[y]+('','East','West')[x]or'That goes nowhere, silly!'
lambda x,y:'North htuoS'[::x][:6]+'EastseW'[::y][:4]
Edit: il est probable maintenant trop long, mais vous pouvez faire le second découpage en tranches[:6*x**2]
, de même pour la chaîne Est / Ouest, si vous pouvez contourner l'erreur lors du premier découpage.lambda x,y:('North ','South ')[y+1]+('West','East')[x+1]or'That goes nowhere, silly!'
est plus court de 2 octetsSouth East
pour(0, 0)
. Merci quand même!PHP, 101 octets
la source
Perl 6 , 79 octets
Essayez-le
Étendu:
la source
JavaScript (ES6),
1061009793 octetsC'est une approche très simple. Il se compose de quelques opérateurs ternaires imbriqués ensemble -
Cas de test
la source
a!=0
peut être remplacé par justea
, car 0 est faux et toutes les autres valeurs sont vraies. En outre, la saisie de la syntaxe de curry est plus courte et l'approche du tableau est également plus courte.f=a=>b=>
et en appelant la fonction commef(1729)(1458)
; qui est cecurrying syntax
que @Luke a mentionné.a|b
au lieu dea||b
. En supposant que l'entrée se compose uniquement de -1, 0 ou 1 (ce qui n'est pas clair pour moi), vous pouvez remplacera>0
etb>0
par~a
et~b
.a?(...):""
/b?(...):""
Lot, 156 octets
La
for
boucle agit comme une table de recherche pour filtrer lorsque le paramètre (éventuellement annulé) est égal à -1 et concaténer les mots correspondants. Si rien n'est sélectionné, le message stupide est imprimé à la place.la source
JavaScript (ES6), 86 octets
Explication
Appelez-le avec currying syntax (
f(a)(b)
). Cela utilise des indices de tableau. Si les deuxa
etb
sont 0, le résultat est une chaîne vide falsifiée. Dans ce cas, la chaîne après le||
est retournée.Essayez-le
Essayez tous les cas de test ici:
la source
GNU sed , 100 + 1 (drapeau r) = 101 octets
De par sa conception, sed exécute le script autant de fois qu'il y a de lignes d'entrée, donc on peut faire tous les cas de test en une seule fois, si nécessaire. Le lien TIO ci-dessous fait exactement cela.
Essayez-le en ligne!
Explication:
L'espace de motif restant à la fin d'un cycle est imprimé implicitement.
la source
05AB1E ,
484543 octetsEssayez-le en ligne!
Explication
la source
Gelée , 40 octets
Essayez-le en ligne!
la source
Japt , 56 octets
Essayez-le en ligne! |Suite de tests
Explication:
la source
00
est exactement le même que0
lorsque le chiffre supplémentaire est supprimé;)Rétine ,
848281 octets1 octet enregistré grâce à @seshoumara pour avoir suggéré
0...?
au lieu de0\w* ?
Essayez-le en ligne!
la source
Nor
etSou
)0...?
.Swift 151 octets
la source
PHP, 95 octets.
Cela affiche simplement l'élément du tableau, et s'il n'y a rien, affiche simplement le message "par défaut".
Ceci est destiné à fonctionner avec le
-r
drapeau, recevant les coordonnées comme 1er et 2e arguments.la source
C # ,
95102 octetsGolfé
Non golfé
Non lisible non lisible
Code complet
Communiqués
+ 7 bytes
- Extrait enveloppé dans une fonction.95 bytes
- Solution initiale.Remarques
Je suis un fantôme, boo!
la source
(a,b)=>{...}
bita=>b=>
, vous n'aurez peut-être pas besoin de()
autour dea|b
, vous pourriez également utiliser des chaînes interpolées pour obtenir une chaîne mieux construite()
alentoursa|b
, j'en ai besoin, sinonOperator '|' cannot be applied to operands of type 'int' and 'bool'
. J'ai également essayé les chaînes interpolées, mais je n'ai pas donné grand-chose à cause des""
erreurs qui m'ont été commises.Scala, 107 octets
Essayez-le en ligne
Pour l'utiliser, déclarez-le en tant que fonction et appelez-le:
Comment ça fonctionne
la source
C, 103 octets
la source
Java 7, 130 octets
Explication:
Code de test:
Essayez-le ici.
Production:
la source
CJam , 68 octets
Essayez-le en ligne! ou vérifier tous les cas de test
Imprime un espace de fin sur
[0 -1]
ou[0 1]
(North
ouSouth
).Explication
la source
Röda , 100 octets
Essayez-le en ligne!
Il s'agit d'une solution triviale, similaire à certaines autres réponses.
la source