La tâche est très simple, lorsqu'on lui donne une entrée, sortez l'une des spirales suivantes:
Input = 1
donne une spirale avec la lettre A
commençant dans le coin supérieur gauche:
A B C D E F
T U V W X G
S 5 6 7 Y H
R 4 9 8 Z I
Q 3 2 1 0 J
P O N M L K
Input = 2
donne une spirale avec la lettre A
commençant dans le coin supérieur droit:
P Q R S T A
O 3 4 5 U B
N 2 9 6 V C
M 1 8 7 W D
L 0 Z Y X E
K J I H G F
Input = 3
donne une spirale avec la lettre A
commençant dans le coin inférieur droit:
K L M N O P
J 0 1 2 3 Q
I Z 8 9 4 R
H Y 7 6 5 S
G X W V U T
F E D C B A
Input = 4
donne une spirale avec la lettre A
commençant dans le coin inférieur gauche:
F G H I J K
E X Y Z 0 L
D W 7 8 1 M
C V 6 9 2 N
B U 5 4 3 O
A T S R Q P
Comme vous pouvez le voir, la spirale va toujours dans le sens des aiguilles d'une montre et se déplace de l' extérieur vers l' intérieur .
Les règles sont simples:
- Vous devez fournir un programme complet en utilisant STDIN et STDOUT, ou l'équivalent le plus proche si ce n'est pas possible.
- Étant donné une entrée (
1, 2, 3, 4
), sortez la spirale associée. - Les espaces de fin sont autorisés
- Les espaces blancs de tête sont autorisés lorsqu'ils sont utilisés de manière cohérente
- Vous devez utiliser des lettres majuscules pour la sortie, les lettres minuscules ne sont pas autorisées.
- C'est du code-golf , donc le programme avec le moins d'octets gagne!
Réponses:
CJam,
454342 octetsTestez-le ici.
Explication
la source
Japt , 53 octets
58 59 605 octets enregistrés grâce à @ETHproductions
Cela utilise la commande de rotation que je n'aurais jamais pensé être si utile
Explication && Ungolfed
Essayez-le en ligne
la source
"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"¸zU ®¬¸} ·
Mathematica 156 octets
Convertit la chaîne initiale de lettres
"ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK"
, en un tableau.Nest
s'appliquef
à ce tableaun-1
fois, où n est le numéro d'entrée.f
fonctionne enTranspose
-ing le tableau suivi parReverse
appliqué à chaque ligne.g
convertit le tableau final en chaîne.Exemple
Si la sortie pouvait être donnée sous forme de tableau, la fonction
g
ne serait pas nécessaire.la source
MATLAB,
6189 octetsJe vais voir si je peux le descendre un peu. Pas sûr cependant.
Cela crée un tableau de toutes les lettres de A à Z suivi de 0 à 9, puis prend une spirale et l'utilise pour organiser les données dans le bon ordre. Le tableau est ensuite tourné de la quantité spécifiée par l'utilisateur, puis imprimé.
La sortie utilise systématiquement les espaces de début comme le permet la question (en fait, sans coût supplémentaire en octets, elle pourrait remplacer les espaces de fin). Voici un exemple:
Comme j'ai vu que des espaces sont nécessaires, ce code d'origine (pour 61) n'est pas valide car il n'ajoute pas d'espace entre chaque caractère. Mais je vais l'ajouter ici pour référence.
et produit:
la source
JavaScript ES6, 165
172Rotation simple, à partir d'une chaîne codée en dur
Remarque 1 octet enregistré thx @ user81655
Extrait de test:
la source
`<newline>`
un octet de moins que`\n`
.Pyth - 60 octets
Codez en dur la chaîne et utilise des opérations matricielles pour obtenir toutes les options.
Suite de tests .
la source
+<G6"
au lieu d'"ABCDEF
enregistrer 2 octets.Rubis, 173 octets
Non golfé:
Usage:
la source
Python, 152 octets
la source