À l'aide de l'ASCII, imprimez une section d'un pavage annulaire hexagonal.
Voici une petite section:
/\__/\
/_/ \_\
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
\ \__/ /
\/__\/
Voici une plus grande section:
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
Défi
Étant donné 2 nombres entiers h
et w
, où h
est la hauteur et w
la largeur, sortez une hxw
section d'un pavage annulaire hexagonal.
Exemples
Entrée 1
4x4
Sortie 1
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\
Entrée 2
3x3
Sortie 2
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrée 3
1x3
Sortie 3
/\__/\ \__/ /\__/\
/_/ \_\/__\/_/ \_\
\ \__/ /\__/\ \__/ /
\/__\/_/ \_\/__\/
Entrée 4
3x6
Sortie 4
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
/\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /
/_/ \_\/__\/_/ \_\/__\/_/ \_\/__\/
\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\
\/__\/_/ \_\/__\/_/ \_\/__\/_/ \_\
Clarifications
- Ma question est similaire à celle-ci: Me Want Honeycomb .
- L'entrée sera sur une seule ligne dans le formulaire
hxw
. - Sortie vers stdout (ou quelque chose de similaire).
- C'est le code-golf, donc la réponse la plus courte en octets gagne.
Réponses:
Befunge, 137 octets
Il me semble avoir créé une sorte d'arme à feu scifi.
Essayez-le en ligne!
Explication
la source
Lua,
174176156 octetsLe code afficherait la hauteur des lignes, pas la hauteur des hexagones. Ajouté
*4
, qui l'a corrigé, mais a ajouté 2 octets supplémentaires. Enregistré quelques octets en changeant le compteur de if en modulo, et en mettant deuxio.read()
s en un.Utilise
io.read()
comme entrée.Réplique les chaînes largeur-quantité de fois via
string:rep(width)
, puis itère hauteur-quantité de fois avec une boucle for. Nécessaire[[]]
(chaînes littérales) parce que les barres obliques inverses ont vraiment foiré les choses.Ancienne version:
la source
Python 2, 180 octets
Prend l'entrée comme deux entiers
Contribution:
2,7
Production:
la source
Lot, 266 octets
Le
:c
sous-programme fait tout le travail de concaténation des pièces ensemble pour une seule ligne; il est appelé par:l
4 fois (un à l'automne mais en faisant:l
en sorte que les arguments de soient un sur-ensemble de:c
) pour générer les 4 lignes pour chaque ligne d'anneaux. Il y avait également la possibilité de passer à travers pour la dernière rangée d'anneaux à la place, mais cela s'est avéré être 5 octets de plus.la source