Buat '99 botol bir di dinding '.
Output yang diinginkan adalah ini:
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.
Tunjukkan pada saya bagaimana Anda akan menyelesaikan ini dengan bahasa pemrograman favorit Anda. Penggunaan bahasa yang paling kreatif menang.
popularity-contest
kolmogorov-complexity
Nick Berardi
sumber
sumber
Jawaban:
Perl (410 karakter)
Ada sudah situs yang didedikasikan untuk kontes ini:
Salah satu solusi Perl akan sangat sulit dikalahkan dalam hal kreativitas, berbunyi:
[bottles.pl]
Inilah tautan ke file asli .
sumber
\b
untuk 'menghapus' karakter yang tidak diinginkan juga sedikit mengecewakan.Brainf *** (1,509)
Saya pikir saya dapat mengalahkan jawaban ini dengan tidak hanya membuat 9 botol bir, bukan 1, tetapi juga dengan hanya menggunakan 7 karakter berbeda dalam kode.
Namun saya harus mengakui, ada bug dalam kode (mungkin Anda bisa mencari cara memperbaikinya untuk saya?) Dan tidak mencetak kalimat terakhir,
Go to the store and buy some more, 99 bottles of beer on the wall.
tetapi selain itu, fungsinya sama baiknya dengan program-program yang dibuat dalam bahasa-bahasa pemrograman banci itu sepertinya disukai semua orang.sumber
braindrunk
?Funciton
Saya menulis ini hanya beberapa hari yang lalu. :) (Tangkapan layar: mulai dan selesai )
Karena ini terlihat jelek di StackExchange karena spasi baris tambahan, coba jalankan kode berikut di konsol JavaScript browser Anda untuk memperbaikinya:
$('pre').css('line-height',1)
sumber
jQuery + FireBug Console
;)
sumber
eval($($('code')[8]).text().replace(/print/g,'console.log'))
<del> (alias. Mencuri) </del>? Itu mencetak seluruh lirik lagu. : PHQ9 + (1 karakter)
Memang ini bukan bahasa lengkap Turing, tapi ini masih diperhitungkan
sumber
Siapa bilang C # terlalu banyak upacara? Siapa pun itu, mereka tidak pernah benar.
sumber
ilivewithian
dikatakan sebelum kode-nya?C
Program ini menghasilkan teks lagu lengkap sebagai string tunggal menggunakan preprosesor. Kode C aktual hanya menghasilkan string yang dibangun. Memanggil
strings
executable yang dihasilkan akan mengungkapkan teks lagu lengkap dalam executable.sumber
C # (
312310304 karakter)sumber
C #
Tidak bermaksud pendek, tapi mungkin ini dianggap kreatif?
Perhatikan ini hanya satu pernyataan :)
sumber
Jelas tidak memenuhi syarat sebagai kreatif, tetapi dilakukan dari baris perintah dengan satu perintah.
sumber
Haskell,
272,250, 243 karaktersumber
Windows PowerShell (198)
Cukup mudah.
Saya menggunakan filter untuk botol-botol bir, karena
function
lebih lama dan doa perlu kurung dalam hal apapun. Deteksi jamak (!!--$_
) pertama-tama mengurangi jumlah botol dengan satu (jadi jamak adalah sesuatu yang tidak nol), melemparkannya ke boolean dan meniadakannya dengan yang pertama!
dan meniadakannya lagi sehingga kita sekarang memiliki boolean yang menjelaskan apakah nomor tersebut membutuhkan jamak. atau tidak. Ini kemudian secara implisit dicor ke integer ketika mengalikan string.Istirahat baris sebaris itu menyenangkan.
Menumbuhkan lebih banyak garis dari yang dibutuhkan dan memotong kembali juga.
sumber
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."
memperbaikinya. Total 199 karakter. (Tambahkan jeda baris setelah$w
sebelumnya"
)Ikal 19 karakter
(membutuhkan koneksi internet)
sumber
Anti-golf hampir-benar dari programmer C uber-bersemangat baru yang belajar Perl?
sumber
/usr/bin/env perl
?JavaScript (
216228215)Sunting: Memiliki satu "1 botol bir" di versi awal, versi ke-3 sepenuhnya ditulis ulang, perhatikan trik-trik keren seperti
(a||99)
mendapatkan 99 di baris terakhir,(a-1?'s':'')
membuat jamak untuk setiap kasus tetapia==1
meskipun tanpa perlu boros==
, dan mengatur nilainya darib
dalam sebuah pernyataan di mana ia digunakan.sumber
"no more bottles of beer on the wall, no more bottles..."
- Lihat: 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
Saya pasti melewatkan pertanyaan ini, jadi inilah versi yang saya poskan sebagai jawaban di tempat lain. Ini adalah versi berbasis C quine. Kompilasi dan jalankan untuk mendapatkan baris lagu berikutnya. Ulangi sampai bosan. Jika kode mengatakan "Waktunya pergi ..." lalu masukkan jumlah bir saat Anda menjalankan argumen baris perintah.
sumber
Javascript (285)
Ini mengasumsikan ada fungsi yang disebut print, untuk menghasilkan string.
sumber
b();
. Dengan asumsi ada fungsib()
yang mencetak 99 botol bir di dinding. :)document.writeln
bekerja.alert
sebagai output,prompt
sebagai input variabel danconfirm
sebagai input boolean. Mereka menyedot sejauh UI berjalan, tetapi mereka adalah fungsi standar IO pemblokiran.alert
danprint
panjangnya sama, sehingga kode Anda harus sama.Skema (270)
Tanpa spasi putih:
Dengan spasi putih:
sumber
Python - banyak
Amidoinitrite?
Referensi tambahan (banyak membantu saya dengan kode): http://www.youtube.com/watch?v=Y0Z0raWIHXk
sumber
Python (318)
Saya menemukan cara ini untuk membuat program Python lebih pendek :)
sumber
Rebmu - 167 karakter
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]]
Mungkin bisa mencukur beberapa karakter, ini hanya percobaan pertama. :)
Berikut ini adalah Rebol yang setara yang memiliki singkatan tulisannya . Masih cukup kompetitif terutama mengingat kejelasan:
Kode sumber yang dikomentari tersedia di GitHub
sumber
PHP:
285240233231 KarakterKeluaran di sini: http://ideone.com/5fQmcd
sumber
Python, 241 karakter
sumber
Ruby, 274 byte
Masih cukup baru di Ruby, benar-benar hanya bermain-main
sumber
C # (299 karakter)
sumber
JavaScript (7 fungsi)
Tidak golf. Ini dimaksudkan sebagai (sebagian besar) implementasi fungsional lagu.
sumber
Go (263)
sumber
PHP - 252 byte
Saya harap saya akan kompres lagi besok.
sumber
Ruby 1.9.2p136: 223
Saya bukan pengecut, Anda dapat membaca milik saya; hlm
sumber
(Oracle) SQL
Tidak ada hitungan karakter, saya tidak bermain golf. Baru saja menemukan ini cara yang menyenangkan untuk melakukannya.
sumber