Défi
Ecrivez un programme qui affiche les paroles de 99 Bouteilles de bière, mais au lieu de "beer", indiquez "fizz" si le nombre de bouteilles accrochées au mur est un multiple de 3, "buzz" s’il s’agit d’un multiple de 5 et "fizzbuzz" s'il s'agit d'un multiple de 3 et d'un multiple de 5. Si le nombre de bouteilles accrochées au mur n'est pas un multiple de 3 ou 5, indiquez simplement "bière" comme d'habitude.
paroles de chanson
99 bottles of fizz on the wall, 99 bottles of fizz.
Take one down and pass it around, 98 bottles of beer on the wall.
98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.
97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of fizz on the wall.
96 bottles of fizz on the wall, 96 bottles of fizz.
Take one down and pass it around, 95 bottles of buzz on the wall.
95 bottles of buzz on the wall, 95 bottles of buzz.
Take one down and pass it around, 94 bottles of beer on the wall.
....
3 bottles of fizz on the wall, 3 bottles of fizz.
Take one down and pass it around, 2 bottles of beer on the wall.
2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.
1 bottle of beer on the wall, 1 bottle of beer.
Go to the store and buy some more, 99 bottles of fizz on the wall.
C'est du code-golf , donc la soumission la plus courte dans chaque langue gagne.
code-golf
string
kolmogorov-complexity
musicman523
la source
la source
Réponses:
Python 2 ,
263253245 octetsEssayez-le en ligne!
la source
['ab','cd'][x]
peut être réécrit comme'acbd'[x::2]
, juste pour sauver quelques octetsC (GCC),
276274 octetsMerci à Neil d' avoir économisé deux octets!
Qui n'aime pas les parenthèses incomparables dans les extensions de macro?
Ungolfed:
Voir en direct sur Coliru!
Version alternative (276 octets)
la source
#define w" on the wall"
à*w=" on the wall"
.#define w
par là*w=
pour sauvegarder des octets. Honnêtement, je ne connais pas très bien le C golfé, mais j’imagine qu’il créew
un char global * implicitement défini.#define
dw
est un littéral de chaîne, qui est automatiquement collé avec des littéraux de chaîne adjacents. Siw
est une variable, je dois utiliser le formatage de chaîne réel à l'intérieurprintf
.Röda , 273 octets
Essayez-le en ligne!
Will golf plus tard dans la matinée.
la source
PHP, 242 octets
Essayez-le en ligne!
PHP, 244 octets
Essayez-le en ligne!
utiliser la fonction strtr
PHP, 245 octets
Essayez-le en ligne!
utiliser une fonction anonyme dans la chaîne pour obtenir une valeur dépendante de l'entier
Étendu
la source
function x($n){return"$n bottle".($n-1?s:'')." of ".(($n%3?'':fizz).($n%5?'':buzz)?:beer);}$y=" on the wall";for($b=99;$b;){$c=x($b);echo"$c$y, $c.↵",--$b?"Take one down and pass it around":"Go to the store and buy some more",", ".x($b?:99)."$y.↵↵";}
. :)use
en combinaison avec la fonction anonyme qui enregistre 1 octet dans cette version05AB1E ,
151146143 octetsEssayez-le en ligne!
la source
SOGL ,
136135134133131 octetsTout d'abord, la 3ème fonction:
La première fonction:
La deuxième fonction:
Et la partie principale:
Perdu quelques octets à cause d'un bogue qui
O
met une nouvelle ligne avant et après (et d'une manière ou d'une autre, cela revient à V0.9 (c'est du code V0.11))la source
Java,
344340339 octets(-4 octets après avoir joué au golf fizzbuzz; -1 octet supprimant les espaces parasites perdus)
Légèrement non-golfé (en utilisant une indentation à 1 espace pour éliminer le défilement horizontal):
la source
JavaScript (ES6),
316309 octetsC'est un programme complet plutôt qu'une fonction. Rien de très créatif, c'est juste l'approche naïve (d'où le décompte!). J'utilise
console.log()
au lieu dealert()
parce que beaucoup de navigateurs ont une limite sur le nombre de caractères qui peuvent être affichés en utilisantalert()
. Notez que tous les espaces et les nouvelles lignes sont nécessaires.Ungolfed:
Voici l'extrait:
BTW, avec cette réponse, j'ai gagné l'insigne de bronze en code-golf ! Jamais pensé que je vais accomplir cela jamais (pas que c'est une grande réussite, cependant.)!
la source
d
fonction n’a pas besoin de()
s car elle?:
est juste-associative, mais vous pouvez en fait économiser encore plus d’octets avecd=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer"
.Rétine , 230 octets
Essayez-le en ligne! Explication:
Insère 99
_
s.Remplace tous les éléments sauf le dernier
_
par la chaîneTake one down and pass it around, $.'#.¶¶$.'#, $.'.¶
, où¶
est une nouvelle ligne et$.'
le nombre de caractères de soulignement restants. Cela revient effectivement de 98 à 1.Ajoute la première ligne du premier verset au format "compact".
Ajoute la deuxième ligne du dernier verset. Pourquoi ai-je besoin de sauter par-dessus des cerceaux pour utiliser le
_
je ne sais pas, mais$
semble correspondre deux fois, donc je ne peux pas l'utiliser. Allez comprendre.Remplace une chaîne qui apparaît plusieurs fois dans le verset.
Cela correspond aux nombres entiers dans les versets, et ajoute le (s) flacon (s) approprié (s), et reprend à nouveau unaire, en préparation du choix de la boisson. (J'économise 1 octet sur le
99
s de cette façon.)Remplacez les multiples exacts avec la boisson appropriée.
la source
sed ,
468459456 octetsEssayez-le en ligne!
Nécessite un
-r
drapeau.Explication
L'espace d'attente contient le motif de deux lignes répétitives, les numéros étant représentés par
[A-I][0-9]
(chiffres séparés pour les dizaines et les un) et le type de boisson représenté parX*Y*Z
, oùX
garde trace de-N mod 3
, etY
de-N mod 5
.A chaque itération suivante, les nombres sont décrémentés et les
X
s etY
s sont mis à jour. L'espace d'attente est ensuite copié dans l'espace du motif, transformé en lignes du morceau et imprimé.la source
C,
349345344 octetsEh bien voilà. Cela a pris une heure.
Essayez-le en ligne!
la source
Javascript (ES6),
236234233232 octetsDémo
Ungolfed
la source
Ruby , 261 octets
Essayez-le en ligne!
la source
shortC ,
314312 octetsDésolé, il n'y a pas d'explication, mais j'ai complètement oublié comment cela fonctionne.
la source
Charbon de bois ,
307297 octetsEssayez-le en ligne!
OUI NOUS POUVONS! Lien vers la version commentée, cela peut être beaucoup joué au golf, j'en suis sûr.
la source
⁺
semble suspecte ...tcl, 298
démo
la source