Dans ce défi, vous devez afficher l'art ASCII d'un ballon à eau compte tenu de la quantité d'eau remplie par le ballon:
| __||__ |
| / # #\ |
| |######| |
| |######| |
| |######| |
| |######| |
| |######| |
| \######/ |
| |
| |
+----------+
Comment dessiner le ballon
Pour afficher une bulle de taille n
, procédez comme suit (remarque: chaque fois que le symbole de division ( /
) est utilisé, il représente une division entière, arrondi vers le bas):
Dessinez un conteneur composé de dix barres verticales (
|
) à gauche et à droite, de dix tirets (-
) en bas et d'un signe plus (+
) dans les coins inférieur gauche et inférieur droit. Cela rend le tout 12x11 et le 10x10 "intérieur".| | | | | | | | | | | | | | | | | | | | +----------+
Dessinez deux barres verticales (l'ouverture du ballon) centrées au milieu de la rangée supérieure, avec des
n/2
traits de soulignement (_
) de chaque côté (pour cet exemple,n
sera 5):| __||__ | | | | | | | | | | | | | | | | | | | +----------+
Dessinez une barre oblique (
/
) et une barre oblique inversée (\
) entourant cette rangée du haut, une rangée en dessous:| __||__ | | / \ | | | | | | | | | | | | | | | | | +----------+
Dessinez des
n
rangées de barres verticales espacées de façon identique, puis une rangée d'une paire de barres obliques inverses (toujours espacées de manière identique):| __||__ | | / \ | | | | | | | | | | | | | | | | | | | | | | \ / | | | | | +----------+
"Remplissez" le ballon d'eau, représenté par un signe de hachage (
#
). Commencez par la rangée la plus basse et montez. Si une ligne n'est pas entièrement remplie, vous pouvez placer les marques de hachage où vous le souhaitez (dans l'exemple ci-dessous, elles sont placées au hasard, mais vous pouvez les placer, disons, toutes sur le côté gauche si vous le souhaitez).| __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+
Le maximum n
est 7 et le minimum est 0.
Contribution
L'entrée sera un entier i
, qui est la quantité de marques de hachage (eau) qui doit être dessinée.
Il ne sera jamais inférieur à 2, ni supérieur à 100.
Production
La sortie doit être un ballon de taille n
contenant i
des marques de hachage (unités d'eau), où n
est la plus petite taille possible pouvant contenir des i
unités d'eau. Puisque i
sera toujours 2 ou plus, n
sera toujours 0 ou plus.
La taille maximale possible à laquelle un ballon peut être dessiné est n
= 7. Si un ballon de taille 7 ne peut pas contenir la quantité d'eau spécifiée, le ballon apparaît:
| |
| |
|## # ###|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
+----------+
(Ce qui précède devrait être la sortie pour input i
= 76. Tout comme le ballon non sauté, les six unités d'eau supplémentaires sur la rangée supérieure peuvent être disposées à votre guise.)
Cas de test
Pourquoi avoir un cas de test, alors que vous pouvez tous les avoir?
Voici un GIF animé de toutes les entrées i
de 2 à 100:
Notation
Il s'agit de code-golf , donc le code le plus court en octets l'emporte.
Réponses:
Octave, 523 octets
23 de ces octets sont juste pour le cas n = 100. Peut-être que quelqu'un peut suggérer un moyen plus efficace ...
Tester
Entrée: 21
Production:
la source
Python 2, 591 octets
Cela m'a pris un peu de temps et cela pourrait probablement être joué beaucoup plus.
J'espère qu'il n'y a pas d'erreurs majeures.
Exemple d'exécution:
donne:
la source