Recréez 99 bouteilles de bière sur le mur.
La sortie souhaitée est la suivante:
99 bottles of beer on the wall, 99 bottles of beer.
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 beer on the wall.
96 bottles of beer on the wall, 96 bottles of beer.
Take one down and pass it around, 95 bottles of beer on the wall.
95 bottles of beer on the wall, 95 bottles of beer.
Take one down and pass it around, 94 bottles of beer on the wall.
....
3 bottles of beer on the wall, 3 bottles of beer.
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 beer on the wall.
Montrez-moi comment résoudre ce problème avec votre langage de programmation préféré. L'utilisation la plus créative d'une langue gagne.
popularity-contest
kolmogorov-complexity
Nick Berardi
la source
la source
Réponses:
Perl (410 caractères)
Il existe déjà un site web dédié à ce concours:
Une des solutions Perl serait très très difficile à battre en termes de créativité:
[bouteilles.pl]
Voici le lien vers le fichier d'origine .
la source
\b
"supprimer" les caractères indésirables est également un peu décevante.Brainf *** (1 509)
J'ai pensé que je pouvais l'emporter sur cette réponse en fabriquant non seulement 9 bouteilles de bière au lieu de 1, mais aussi en n'utilisant que 7 caractères différents dans le code.
Cependant, je dois admettre qu’il ya un bogue dans le code (vous pouvez peut-être trouver le moyen de le réparer pour moi?) Et qu’il n’imprime pas la phrase finale,
Go to the store and buy some more, 99 bottles of beer on the wall.
mais à part cela, il fonctionne aussi bien que les programmes réalisés dans ces langages de programmation sissy que tout le monde semble aimer utiliser.la source
braindrunk
?Fonction
Je l'ai écrit juste l'autre jour. :) (Captures d'écran: début et fin )
Etant donné que cela semble laide dans StackExchange en raison de l’espacement des lignes supplémentaire, envisagez d’exécuter le code suivant dans la console JavaScript de votre navigateur pour résoudre ce problème:
$('pre').css('line-height',1)
la source
Console jQuery + FireBug
;)
la source
eval($($('code')[8]).text().replace(/print/g,'console.log'))
<del> (aka. Voler) </ del>? Il imprime l'intégralité des paroles de la chanson. : PHQ9 + (1 caractère)
Certes ce n'est pas un langage complet de Turing, mais cela compte toujours
la source
Qui a dit que C # avait trop de cérémonie? Peu importe qui que ce soit, ils n'ont jamais été aussi bons.
la source
ilivewithian
dit avant son code?C
Ce programme génère le texte complet de la chanson sous forme de chaîne unique à l'aide du préprocesseur. Le code C actuel ne fait que sortir la chaîne ainsi construite. L'appel
strings
de l'exécutable généré révélera le texte complet de la chanson dans l'exécutable.la source
C # (
312310304 caractères)la source
C #
Pas destiné à être court, mais peut-être que cela compte comme créatif?
Notez que ceci est juste une seule déclaration :)
la source
Ne constitue certainement pas une création, mais cela s’effectue à partir de la ligne de commande avec une seule commande.
la source
Haskell,
272,250, 243 caractèresla source
Windows PowerShell (198)
Assez simple.
J'utilise un filtre pour les bouteilles de bière, car
function
c'est plus long et l'invocation a besoin de parenthèses dans tous les cas. La détection au pluriel (!!--$_
) commence par décrémenter le nombre de bouteilles par un (si pluriel est quelque chose non nul), jette à booléens et nie avec la première!
et nie à nouveau que nous avons maintenant un booléen indiquant si le nombre a besoin d' un pluriel ou pas. Ceci est ensuite implicitement converti en un entier lors de la multiplication de la chaîne.Les sauts de ligne en ligne sont amusants.
Générer plus de lignes que nécessaire et réduire ensuite.
la source
filter b{"$_ bottle$('s'*!!--$_) of beer"}(99..1|%{($_|b)+($w=' on the wall')+", $($_|b).";"Take one down and pass it around, $(--$_|b)$w. "})[0..196];"Go to the store and buy some more, $(99|b) $w."
corrige cela. Totale 199 caractères. (Ajouter un saut de ligne après$w
avant"
)Curl 19 personnages
(nécessite une connexion Internet)
la source
Anti-golf presque correct de la part du nouveau programmeur C hyper-désireux qui apprend Perl?
la source
/usr/bin/env perl
?JavaScript (
216228215)Edit: vous aviez un "1 bouteilles de bière" dans la version initiale, la 3ème version est complètement réécrite, remarquez des astuces sympas comme
(a||99)
obtenir 99 dans la dernière ligne,(a-1?'s':'')
pluriel pour chaque cas maisa==1
sans avoir besoin de gaspillage==
, et en définissant la valeur de l'b
intérieur d'une déclaration où il est utilisé.la source
"no more bottles of beer on the wall, no more bottles..."
- Voir: 99-bottles-of-beer.net/lyrics.htmlfor(o,e,n=100,t=" on the wall";n-->-1;)o=e+t+", "+e+".<br>"+(n>-1?"Take one down, pass it around, ":"Go to the store and buy some more, ")+(e=(0>n?99:n||"no more")+" bottle"+(1!=n?"s":"")+" of beer")+t+".<p>",99>n&&document.write(o)
C
Je dois avoir manqué cette question, alors voici une version que j'ai posté comme réponse ailleurs. C'est une version basée sur C quine. Compilez et courez pour obtenir la prochaine ligne de la chanson. Répétez jusqu'à ennuyer. Si le code indique "Il est temps d'y aller ...", entrez le nombre de bières à la prochaine utilisation en tant qu'argument en ligne de commande.
la source
Javascript (285)
Cela suppose qu’il existe une fonction appelée print pour générer une chaîne.
la source
b();
. En supposant qu’une fonctionb()
imprime 99 bouteilles de bière sur le mur. :)document.writeln
travaux.alert
en sortie,prompt
en entrée variable etconfirm
en entrée booléenne. Ils sont nulles en ce qui concerne l'interface utilisateur, mais ce sont les fonctions IO bloquantes standard.alert
etprint
ont la même longueur, votre code devrait donc être à peu près égal.Régime (270)
Aucun espace:
Avec des espaces:
la source
Python - beaucoup
Amidoinitrite?
Référence supplémentaire (m'a beaucoup aidé avec le code): http://www.youtube.com/watch?v=Y0Z0raWIHXk
la source
Python (318)
J'ai trouvé cette façon de raccourcir un programme Python :)
la source
Rebmu - 167 Caractères
M N 99 Bdz[cb[n{ bottle}egN 1{s}{}{ of beer}]]loN[cb[b W{ on the wall}C{, }b P{.}lfEZ--n[Nm{Go to the store and buy some more}]{Take one down and pass it around}cBwPlf]]
Pourrait probablement raser quelques caractères, ce n'était qu'un premier essai. :)
Voici l'équivalent de Rebol, qui a fait résumer le raccourci. Toujours très compétitif surtout compte tenu de la clarté:
Code source commenté disponible sur GitHub
la source
PHP:
285240233231 CaractèresSortie ici: http://ideone.com/5fQmcd
la source
Python, 241 caractères
la source
Ruby, 274 octets
Encore assez nouveau pour Ruby, vraiment juste jouer
la source
C # (299 caractères)
la source
JavaScript (7 fonctions)
Pas de golf. Ceci est conçu comme une implémentation (principalement) fonctionnelle de la chanson.
la source
Go (263)
la source
PHP - 252 octets
J'espère que je vais compresser un peu plus demain.
la source
Ruby 1.9.2p136: 223
Je ne suis pas un lâche, vous pouvez lire le mien; p
la source
(Oracle) SQL
Aucun personnage ne compte, je ne l'ai pas joué au golf. Je viens de trouver cela une façon amusante de le faire.
la source