Voir aussi: Rotatagons
Défi
Étant donné une chaîne en entrée, sortez son wordagon.
Wordagons
Un wordagon est une façon de représenter une chaîne dans un hexagone. Maintenant, créons un wordagon à partir de la chaîne hexa
:
Tout d'abord, vous commencez avec le premier caractère de la chaîne et placez-le au centre:
h
Ensuite, vous prenez le caractère suivant dans la chaîne et ajoutez un calque hexagonal:
e e
e h e
e e
Ensuite, ajoutez le calque suivant:
x x x
x e e x
x e h e x
x e e x
x x x
Enfin, ajoutez le dernier calque:
a a a a
a x x x a
a x e e x a
a x e h e x a
a x e e x a
a x x x a
a a a a
Et vous avez maintenant le wordagon pour la chaîne hexa
.
Exemples
En voici quelques-uns que j'ai préparés plus tôt:
hello
o o o o o
o l l l l o
o l l l l l o
o l l e e l l o
o l l e h e l l o
o l l e e l l o
o l l l l l o
o l l l l o
o o o o o
PPcg
g g g g
g c c c g
g c P P c g
g c P P P c g
g c P P c g
g c c c g
g g g g
o *
* * *
* *
* o *
* *
* * *
(T_T)
) ) ) ) )
) T T T T )
) T _ _ _ T )
) T _ T T _ T )
) T _ T ( T _ T )
) T _ T T _ T )
) T _ _ _ T )
) T T T T )
) ) ) ) )
Notez que les sauts de ligne de fin et / ou de début sont autorisés.
Gagnant
Le code le plus court en octets gagne.
code-golf
ascii-art
hexagonal-grid
Beta Decay
la source
la source
Réponses:
Pyth - 29 octets
Suite de tests .
la source
Python 2, 83 octets
Imprime le motagon puis se bloque (qui ne s'imprime que sur STDERR).
Exemple:
xnor a enregistré 5 octets. Merci!
la source
y
's en faisantn=len(s)\nwhile 1:n-=1;y=abs(n);...
et en terminant avec erreur.Vim, 92 octets
Les lettres encerclées représentent Control+ lettre; ␛ c'est s'échapper.
la source
@q
me fait une boucle infinie. Cela fonctionne parfaitement s'il est supprimé.Mathematica
100219 octetsSi l'ASCII-Art n'a pas besoin d'être un Terminal-Art, cela doit être valide.
Ma soumission précédente a par erreur dessiné une étoile plutôt qu'un hexagone. Je ne vois pas comment j'étais si loin!
CirclePoints@6
renvoie les sommets d'un hexagone unitaire, en supposant que le centre est à l'origine.Subdivide
Les coordonnées des sommets voisins trouvent des positions également espacées le long du bord respectif.Un compteur de 1 à la
StringLength -1
chaîne d'entrée permet de gérer séparément chaque couche du wordagon.À
n
mesure que la distance augmente, la distance respective de chaque sommet par rapport à l'origine augmente également.Text[s~StringPart~1,{0,0}]
imprime la première lettre de l'entrée à l'origine.f @ "Wordagon"
Pour les curieux, voici à quoi ressemblait la version star. Je sais, il était ainsi de la marque. Il ne montrait que les lettres aux sommets de l'hexagone.
la source
Rubis, 82 octets
itère
1-n..n-1
dans les deux directions i = y et j = x. Sans les espaces de tête sur chaque ligne, la sortie ressemble à celle ci-dessous, suite à la sélection d'un caractères
avec l'index[[i.abs+j,i.abs,-j].max]
. L'ajout d'espaces de tête forme l'hexagone requis.Non testé dans le programme de test
Sortie typique
la source
JavaScript (ES6), 118 octets
Où
\n
représente le caractère de nouvelle ligne littéral. Basé sur ma réponse au défi Hexplosive ASCII-art bien que certaines parties de la solution ressemblent à la réponse Ruby de @ LevelRiverSt. Les différents composants duMath.max
produit produisent la sortie suivante pourl=3
:La valeur maximale est prise et les valeurs supérieures à
l
sont supprimées, produisant ainsi la forme hexagonale, tandis que les valeurs restantes correspondent aux caractères de la chaîne:la source
05AB1E , 31 octets
Explication
Utiliser la symétrie pour générer uniquement la partie supérieure de l'hexagone,
puis la refléter pour former la partie inférieure.
Essayez-le en ligne!
la source
Python 2, 104 octets
la source
PHP - 202 octets
Utilisation à partir de la ligne de commande:
par exemple:
Suite de tests .
la source