Étant donné un seul entier x
où 0 <= x <= 91
sortir une pile de bouteilles de bière avec autant de bouteilles (et étagères) manquantes. Par souci de simplicité, je ne montrerai que les 6 premières bouteilles et ce que ce serait pour chacune des premières entrées.
Voici la pile de bouteilles, chaque numéro est la bouteille que vous devez retirer pour cette entrée (indexé 1):
Notez que nous utilisons 91 au lieu de 99, car 99 entraînerait une pile de bouteilles instable.
Exemple
Avec 0 bouteilles manquantes ( x=0
):
|=|
| |
| |
/ \
. .
|-----|
| |
|-----|
|_____|
=============
|=| |=|
| | | |
| | | |
/ \ / \
. . . .
|-----| |-----|
| | | |
|-----| |-----|
|_____| |_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
Pour la sortie complète de 0, voir ici: https://pastebin.com/ZuXkuH6s
Avec 1
bouteille manquante ( x=1
):
|=| |=|
| | | |
| | | |
/ \ / \
. . . .
|-----| |-----|
| | | |
|-----| |-----|
|_____| |_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
Encore une fois, ce sont les deux premières lignes d'ici: https://pastebin.com/ZuXkuH6s (avec 1 supprimé) ...
Avec 2 bouteilles manquantes:
|=|
| |
| |
/ \
. .
|-----|
| |
|-----|
|_____|
=====================
|=| |=| |=|
| | | | | |
| | | | | |
/ \ / \ / \
. . . . . .
|-----| |-----| |-----|
| | | | | |
|-----| |-----| |-----|
|_____| |_____| |_____|
=============================
[THERE ARE MORE UNDER THIS]
[ENTRÉES SUPPLÉMENTAIRES SUPPRIMÉES]
Avec 91 bouteilles manquantes ( n = 91
):
:(
Vous devez produire un visage malheureux, car vous n'avez plus de bière.
Règles
- Les bouteilles doivent être retirées de gauche à droite.
- Les étagères sont retirées lorsqu'aucune bière ne reste sur le dessus des étagères.
- Pour une entrée de 0, vous générez 91 bouteilles empilées dans un triangle.
- La rangée du bas a 13 bouteilles, le haut en a 1.
- 1 espace entre chaque bouteille sur chaque étagère.
- Les étagères doivent être insérées entre chaque rangée de bouteilles.
- Les étagères peuvent utiliser
=
,-
ou#
comme personnage. - Les étagères doivent être 3 plus larges (de chaque côté) que les bouteilles qu'elles contiennent.
- Les étagères peuvent utiliser
- Il s'agit du code-golf , le plus petit nombre de victoires.
Réponses:
Fusain ,
9991 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. En fait, la vraie version n'est que de
8370 octets:Explication:
Remplissez un tableau fournissant des informations sur l'emplacement des étagères et leur durée.
Imprimez un visage malheureux, bien qu'il soit immédiatement remplacé par la première bouteille de bière (le cas échéant).
Parcourez les bouteilles de bière restantes.
Vérifiez si une étagère doit être dessinée.
Imprimez l'étagère et positionnez-la prête à tirer la bouteille suivante au-dessus.
Dessinez une bouteille et placez-vous prêt à en tirer une autre.
la source
for
boucle. Ceci est unewhile
boucle, donc je dois faire quelque chose de plus manuellement.for
boucle était le chemin à parcourir tout au long ... 13 octets économisés! (Eh bien, j'ai eu un peu de chance avec la facilité de remplissage de mon tableau.)Python 3 ,
306299265253255252247244 octetsTentative rapide, pourrait être optimisée
Edit: -2 octets grâce à @MrXcoder
Modifier: -32 octets car les espaces de fin ne sont pas nécessaires
Edit: -12 octets en combinant les deux fonctions
Edit: -5 octets grâce à @ musicman523
Modifier: +7 octets pour supprimer l'étagère après la dernière ligne
Éditer: -3 octets
Edit: -5 octets car une fonction lambda n'est utilisée qu'une seule fois dans une carte
Modifier: -3 octets en utilisant la fonction chaîne
center
Essayez-le en ligne!
la source
d=
en-tête, car il n'est pas récursif pour -2 octetsE
variableJavaScript (ES6),
251256 octetsEdit: sauvé 2 octets grâce à @dzaima .
Edit: Ajout de 7 octets pour résoudre le problème avec le paramètre.
:(
Voici la version (principalement) non golfée:
Code de test
Afficher l'extrait de code
la source
r
"macro"; J'avais l'impression qu'il pourrait y avoir une méthode plus courte mais rien de ce que j'ai essayé ne l'a abaissée.C (gcc) ,
360358 bytesEssayez-le en ligne!
Explication:
la source
Python 2, 436 octets
Oui !!
Ma méthode est trop verbeuse, mais de toute façon: elle «dessine» essentiellement chaque rangée de bouteilles, ajoute des espaces, puis «efface» tout ce qui est nécessaire, imprimant tout ce qui reste.
Halvard Hummel est beaucoup mieux.
la source