Erstellen Sie '99 Flaschen Bier an der Wand 'neu.
Die gewünschte Ausgabe lautet wie folgt:
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.
Zeigen Sie mir, wie Sie dies mit Ihrer bevorzugten Programmiersprache lösen würden. Der kreativste Gebrauch einer Sprache gewinnt.
popularity-contest
kolmogorov-complexity
Nick Berardi
quelle
quelle
Antworten:
Perl (410 Zeichen)
Es gibt bereits eine Website zu diesem Wettbewerb:
Eine der Perl-Lösungen wäre in Bezug auf Kreativität kaum zu übertreffen. Sie lautet:
[bottles.pl]
Hier ist der Link zur Originaldatei .
quelle
\b
Ein wenig enttäuschend ist auch die Verwendung , um unerwünschte Zeichen zu entfernen.Brainf *** (1.509)
Ich dachte, ich könnte diese Antwort übertreffen , indem ich nicht nur 9 Bierflaschen anstelle von 1 mache, sondern auch nur 7 verschiedene Zeichen im Code benutze.
Ich muss allerdings zugeben, dass der Code einen Fehler enthält (vielleicht können Sie herausfinden, wie Sie ihn für mich beheben können?) Und den letzten Satz nicht ausgibt.
Go to the store and buy some more, 99 bottles of beer on the wall.
Ansonsten funktioniert er genauso gut wie jeder andere die programme, die in jenen sissy programmiersprachen erstellt wurden, scheinen alle anderen gern zu benutzen.quelle
braindrunk
?Funktion
Ich habe das erst neulich geschrieben. :) (Screenshots: Start und Ziel )
Da dies in StackExchange aufgrund des zusätzlichen Zeilenabstands hässlich aussieht, sollten Sie den folgenden Code in der JavaScript-Konsole Ihres Browsers ausführen, um dies zu beheben:
$('pre').css('line-height',1)
quelle
jQuery + FireBug Console
;)
quelle
eval($($('code')[8]).text().replace(/print/g,'console.log'))
<del> (aka. Stehlen) </ del>? Es druckt den gesamten Text des Songs. : PHQ9 + (1 Zeichen)
Zugegeben, es ist keine vollständige Sprache für Turing, aber das zählt immer noch
quelle
Wer hat gesagt, dass C # zu viel Zeremonie hatte? Wer auch immer es war, sie hatten noch nie so recht.
quelle
ilivewithian
vor seinem Code gesagt wurde?C
Dieses Programm generiert den kompletten Liedtext als einzelne Zeichenkette unter Verwendung des Präprozessors. Der tatsächliche C-Code gibt nur den so aufgebauten String aus. Wenn Sie
strings
die generierte ausführbare Datei aufrufen, wird der vollständige Liedtext in der ausführbaren Datei angezeigt.quelle
C # (
312310304 Zeichen)quelle
C #
Nicht kurz gedacht, aber vielleicht zählt das ja als kreativ?
Beachten Sie, dass dies nur eine einzige Aussage ist :)
quelle
Definitiv nicht als kreativ zu qualifizieren, aber es wird von der Kommandozeile mit einem einzigen Befehl erledigt.
quelle
Haskell,
272,250, 243 Zeichenquelle
Windows PowerShell (198)
Ziemliech direkt.
Ich benutze einen Filter für die Bierflaschen, da dieser
function
länger ist und der Aufruf auf jeden Fall Klammern benötigt. Die Plural-Erkennung (!!--$_
) dekrementiert zuerst die Anzahl der Flaschen um eins (Plural ist also alles, was nicht Null ist), wandelt sie in einen Booleschen Wert um und negiert sie mit der ersten!
und negiert sie erneut oder nicht. Dies wird dann implizit in eine Ganzzahl umgewandelt, wenn die Zeichenfolge multipliziert wird.Inline-Zeilenumbrüche machen Spaß.
Mehr Linien als nötig spawnen und auch danach zurückschneiden.
quelle
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."
behebt das. Insgesamt 199 Zeichen. (Fügen Sie einen Zeilenumbruch nach$w
vorher hinzu"
)Curl 19 Zeichen
(Internetverbindung erforderlich)
quelle
Fast korrektes Anti-Golf-Spiel vom überaus eifrigen neuen C-Programmierer, der gerade Perl lernt?
quelle
/usr/bin/env perl
?JavaScript (
216228215)Bearbeiten: Hatte eine einzelne "1 Flaschen Bier" in der ersten Version, 3. Version ist komplett umgeschrieben, beachten Sie coole Tricks wie
(a||99)
99 in der letzten Zeile zu bekommen,(a-1?'s':'')
Plural für jeden Fall, abera==1
ohne die Notwendigkeit für die Verschwendung==
, und setzen Sie den Wert vonb
innerhalb einer Anweisung, in der es verwendet wird.quelle
"no more bottles of beer on the wall, no more bottles..."
- Siehe: 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
Ich muss diese Frage verpasst haben. Hier ist eine Version, die ich an anderer Stelle als Antwort veröffentlicht habe. Es ist eine C-Quine-basierte Version. Kompilieren und ausführen, um die nächste Zeile des Songs zu erhalten. Wiederholen, bis Langeweile aufkommt. Wenn der Code "Time to go ..." lautet, geben Sie die Anzahl der Biere ein, die Sie das nächste Mal als Befehlszeilenargument ausführen.
quelle
Javascript (285)
Dies setzt voraus, dass es eine Funktion namens print gibt, die eine Zeichenfolge ausgibt.
quelle
b();
. Angenommen, es gibt eine Funktionb()
, die 99 Flaschen Bier an die Wand druckt. :)document.writeln
funktioniert.alert
als Ausgabe,prompt
als variable Eingabe undconfirm
als boolesche Eingabe. Sie saugen so weit wie UI geht, aber sie sind die Standard-E / A-Blockierungsfunktionen.alert
undprint
sind gleich lang, daher sollte Ihr Code ungefähr gleich sein.Schema (270)
Kein Leerzeichen:
Mit Leerzeichen:
quelle
Python - viel
Amidoinitrit?
Zusätzlicher Verweis (hat mir beim Code sehr geholfen): http://www.youtube.com/watch?v=Y0Z0raWIHXk
quelle
Python (318)
Ich habe diese Art gefunden, ein Python-Programm kürzer zu machen :)
quelle
Rebmu - 167 Zeichen
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]]
Könnte wahrscheinlich ein paar Charaktere abschneiden, das war nur ein erster Versuch. :)
Hier ist gleichbedeutend mit Rebol, bei dem die Kurzschrift ausgekocht ist. Immer noch ziemlich wettbewerbsfähig, vor allem angesichts der Klarheit:
Kommentierter Quellcode auf GitHub verfügbar
quelle
PHP:
285240233231 ZeichenAusgabe hier: http://ideone.com/5fQmcd
quelle
Python, 241 Zeichen
quelle
Ruby, 274 Bytes
Ruby ist noch ziemlich neu und spielt einfach nur rum
quelle
C # (299 Zeichen)
quelle
JavaScript (7 Funktionen)
Nicht golfen. Dies ist als (meist) funktionale Umsetzung des Songs gedacht.
quelle
Los (263)
quelle
PHP - 252 Bytes
Ich hoffe, ich werde morgen noch etwas komprimieren.
quelle
Ruby 1.9.2p136: 223
Ich bin kein Feigling, du kannst meinen lesen; p
quelle
(Oracle) SQL
Keine Anzahl von Charakteren, ich habe es nicht golfen. Ich fand das eine unterhaltsame Art und Weise, es zu tun.
quelle