Recrea '99 botellas de cervezas en la pared '.
La salida deseada es esta:
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.
Muéstrame cómo resolverías esto con tu lenguaje de programación favorito. El uso más creativo de un idioma gana.
popularity-contest
kolmogorov-complexity
Nick Berardi
fuente
fuente
Respuestas:
Perl (410 caracteres)
Hay ya un sitio web dedicado a este concurso:
Una de las soluciones de Perl sería muy difícil de superar en términos de creatividad, dice:
[botellas.pl]
Aquí está el enlace al archivo original .
fuente
\b
para 'eliminar' caracteres no deseados también es un poco decepcionante.Brainf *** (1,509)
Pensé que podría superar esta respuesta no solo haciendo 9 botellas de cerveza en lugar de 1, sino también usando solo 7 caracteres diferentes en el código.
Sin embargo, tengo que admitir que hay un error en el código (¿tal vez puedas descubrir cómo solucionarlo por mí?) Y no imprime la oración final,
Go to the store and buy some more, 99 bottles of beer on the wall.
pero aparte de eso, funciona tan bien como cualquiera de los programas realizados en esos lenguajes de programación marica que a todos los demás les gusta usar.fuente
braindrunk
?Funciton
Escribí esto el otro día. :) (Capturas de pantalla: inicio y finalización )
Dado que esto se ve feo en StackExchange debido al espacio adicional entre líneas, considere ejecutar el siguiente código en la consola JavaScript de su navegador para solucionarlo:
$('pre').css('line-height',1)
fuente
Consola jQuery + FireBug
;)
fuente
eval($($('code')[8]).text().replace(/print/g,'console.log'))
<del> (también conocido como robo) </del>? Imprime la letra completa de la canción. : PHQ9 + (1 personaje)
Es cierto que no es un lenguaje completo de Turing, pero esto todavía cuenta
fuente
¿Quién dijo que C # tuvo demasiada ceremonia? Quienquiera que haya sido, nunca han estado tan en lo cierto.
fuente
ilivewithian
dijo antes de su código?C
Este programa está generando el texto completo de la canción como una sola cadena usando el preprocesador. El código C real solo genera la cadena así construida. Llamar
strings
al ejecutable generado revelará el texto completo de la canción en el ejecutable.fuente
C # (
312310304 caracteres)fuente
C#
No pretende ser breve, pero ¿quizás esto cuenta como creativo?
Tenga en cuenta que esto es solo una declaración :)
fuente
Definitivamente no califica como creativo, pero se hace desde la línea de comando con un solo comando.
fuente
Haskell,
272,250, 243 caracteres.fuente
Windows PowerShell (198)
Bastante sencillo.
Estoy usando un filtro para las botellas de cerveza, ya que
function
es más largo y la invocación necesita paréntesis en cualquier caso. La detección plural (!!--$_
) primero disminuye el número de botellas en una (por lo tanto, plural es cualquier cosa que no sea cero), lo convierte en booleano y lo niega con el primero!
y lo niega nuevamente, por lo que ahora tenemos un booleano que describe si el número necesita un plural o no. Esto se convierte implícitamente en un número entero al multiplicar la cadena.Los saltos de línea son divertidos.
Generando más líneas de las necesarias y recortando también después.
fuente
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."
arregla eso. Totales 199 caracteres. (Añadir un salto de línea después de$w
antes"
)Curl 19 personajes
(requiere conexión a internet)
fuente
Anti-golf casi correcto del nuevo programador en C que está aprendiendo Perl?
fuente
/usr/bin/env perl
?JavaScript (
216228215)Editar: tenía una sola "1 botellas de cerveza" en la versión inicial, la tercera versión está completamente reescrita, observe trucos geniales como
(a||99)
obtener 99 en la última línea,(a-1?'s':'')
haciendo plural para cada caso, peroa==1
sin necesidad de desperdicio==
, y estableciendo el valor deb
dentro de una sentencia en la que se utiliza.fuente
"no more bottles of beer on the wall, no more bottles..."
- Ver: 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
Debo haber perdido esta pregunta, así que aquí hay una versión que publiqué como respuesta en otro lugar. Es una versión basada en C quine. Compila y corre para obtener la siguiente línea de canción. Repita hasta aburrirse. Si el código dice "Hora de irse ...", ingrese la cantidad de cervezas la próxima vez que ejecute como argumento de línea de comando.
fuente
Javascript (285)
Esto supone que hay una función llamada print, para generar una cadena.
fuente
b();
. Asumiendo que hay una funciónb()
que imprime 99 botellas de cerveza en la pared. :)document.writeln
trabajos.alert
como salida,prompt
como entrada variable yconfirm
como entrada booleana. Respetan hasta donde llega la IU, pero son las funciones estándar de bloqueo de E / S.alert
yprint
tienen la misma longitud, por lo que su código debe ser casi igual.Esquema (270)
Sin espacios en blanco:
Con espacios en blanco:
fuente
Python - mucho
Amidoinitrite?
Referencia adicional (me ayudó mucho con el código): http://www.youtube.com/watch?v=Y0Z0raWIHXk
fuente
Pitón (318)
Encontré esta forma de acortar un programa de Python :)
fuente
Rebmu - 167 caracteres
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]]
Probablemente podría afeitarse algunos caracteres, esto fue solo un primer intento. :)
Aquí está Rebol equivalente que tiene la taquigrafía hervida. Sigue siendo bastante competitivo, especialmente teniendo en cuenta la claridad:
Código fuente comentado disponible en GitHub
fuente
PHP:
285240233231 caracteresSalida aquí: http://ideone.com/5fQmcd
fuente
Python, 241 caracteres
fuente
Rubí, 274 bytes
Todavía es bastante nuevo para Ruby, realmente solo estoy jugando
fuente
C # (299 caracteres)
fuente
JavaScript (7 funciones)
No golf. Esto está pensado como una implementación funcional (principalmente) de la canción.
fuente
Ir (263)
fuente
PHP - 252 bytes
Espero comprimir un poco más mañana.
fuente
Ruby 1.9.2p136: 223
No soy cobarde, puedes leer el mío; p
fuente
(Oracle) SQL
Ningún personaje cuenta, no lo jugué. Acabo de encontrar esto una forma divertida de hacerlo.
fuente