(non, pas ceux-là )
Le défi
Vous recevrez deux entrées. Le premier est un entier positif n > 0
, qui est utilisé pour sortir unn x n
triangle rectangle des nombres1, 2, 3, ... n
. Ce triangle commence dans un coin et augmente horizontalement et verticalement de un et en diagonale de deux. Voir les exemples ci-dessous pour des éclaircissements. Gardez un espace entre les colonnes et gardez tous les nombres alignés à droite dans leurs colonnes particulières. (C'est de l' ascii-art après tout).
La deuxième entrée,, x
est l'un des quatre caractères ASCII uniques distincts de votre choix qui détermine le coin de départ du triangle (et donc son orientation). Par exemple, vous pouvez utiliser1,2,3,4
oua,b,c,d
ou #,*,!,)
, etc. Veuillez préciser dans votre réponse comment fonctionne l'orientation.
Pour clarifier ce défi, je vais utiliser 1,2,3,4
ce qui correspondra à1
haut à gauche, en 2
haut à droite, et ainsi de suite dans le sens horaire.
Les exemples
Par exemple, pour n = 5
, x = 1
affichez les éléments suivants:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Pour l'entrée n = 11
, x = 1
sortez les éléments suivants (notez les espaces supplémentaires afin que les chiffres simples soient alignés à droite):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
Avec entrée n=6
et x=2
sortie:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Avec entrée n = 3
et x = 4
sortie:
3
2 3
1 2 3
Avec entrée n = 1
et n'importe quelle x
sortie:
1
Les règles
- Les sauts de ligne de début / fin ou les autres espaces sont facultatifs, à condition que les numéros soient alignés de manière appropriée. (Par exemple, un espace de fin pour faire une sortie carrée est acceptable).
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- La sortie peut être vers la console, enregistrée sous forme d'image, renvoyée sous forme de liste de chaînes, etc. Tout format pratique et autorisé .
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Réponses:
Gelée , 13 octets
Essayez-le en ligne!
Argument de gauche: Argument de
n
droite:
x
(0
= en haut à gauche,1
= en haut à droite,2
= en bas à gauche,3
= en bas à droite)la source
MATL , 18 octets
La première entrée est
n
. La deuxième entrée estx
, qui peut être:0
: en haut à gauche1
: en bas à gauche2
: en bas à droite3
: en haut à droite(Ou il peut s'agir de n'importe quel autre entier, qui est interprété modulo 4).
Essayez-le sur MATL Online!
la source
APL (Dyalog) , 29 octets
Essayez-le en ligne!
Comment?
¨⍳⍵
- pour chacuni
dans la gamme den
(⍳+⍵-⊢)
- produire gamme dei
avec addition vectorisée den - i
↑⌽
- inverser et aplatir⌽∘⍉
- tourner à droite⍣⍺⊢
-x
fois' '@(=∘0)
- supprimer les zérosla source
JavaScript
130128154142138135 135133 octets* problèmes de rembourrage fixes
la source
Python 2 ,
124120 octetsEssayez-le en ligne! ou Essayez tous les cas de test
(r+[n]+['']*i)[-n:]
ajoutera des chaînes vides à la liste des nombres et coupera à la bonne taille,zip
avec[::1-x%4/2*2]
et[::1-x/3*2]
effectuera la rotation, et%%%ds'%len(`n`)*n
générera une chaîne de fomation (comme' %3s %3s %3s'...
) à utiliser sur chaque nombre + liste de chaînes videla source
Mathematica, 89 octets
voici une autre solution qui fonctionne dans TIO
Mathematica, 122 octets
Essayez-le en ligne!
la source
Fusain , 39 octets
Essayez-le en ligne! Remarque: Espace de fin. Le lien est vers la version détaillée du code. La deuxième valeur est le nombre de rotations dans le sens antihoraire, donc 0 est en haut à gauche, 1 en bas à gauche, 2 en bas à droite, 3 en haut à droite. Explication:
la source
Javascript (ES6),
241222214 octetsMoins de golf
Remarque sur l'orientation.
Le deuxième paramètre est un caractère de {'0', '1', '2', '3'} et le type est automatiquement converti en nombre par le
&
opérateur. Si le bit 0 (lsb) du nombre est défini, les lignes sont inversées verticalement. Si le bit 1 (nlsb) est défini, les colonnes sont inversées horizontalement. D'autres caractères décimaux peuvent être utilisés avec des résultats prévisibles.Espaces de fin
Les entrées vides dans la chaîne de sortie ont été remplacées par des espaces, ce qui signifie que les lignes ont des espaces de fin dans les orientations «0» et «1».
la source
Lua, 250 octets
Prend les paramètres [w] idth et [m] ode en utilisant 1,2,3,4 pour les modes comme décrit dans l'exemple.
la source
05AB1E (61 octets)
Essayez-le en ligne
la source