ein etwas größeres *g* zum Wochenende
Thomas J.
- menschelei
Tach allerseits
Ich finde es immer wieder faszinierend, über welch skurile Seiten man (oder auch frau) in den Weiten des Internet so stolpern kann.
Und auch auf die Gefahr hin, daß einigen hier das Nachfolgende schon bekannt sein dürfte:
99 Bottle of beer on the wall,
Take one down and pass it around.
98 Bottle of beer on the wall,
Take one down and pass it around.
...
No bottles of beer on the wall
There are no more to pass around
Go to the store and buy some more.
ist ein Abzählreim (bzw. ein alter Pubsong), der sich im Englischen ähnlicher Beliebtheit erfreut wie die 10 kleinen Jägermeister ähh Negerlein im Deutschen.
In Javascript könnte das z.B. so aussehen:
if (confirm("Are you old enough to read about beer\n" +
"according to your local community standards?")) {
for (i = 99 ; i > 0 ; i--) {
j = i - 1;
if (i != 1) {
icase = "bottles";
} else {
icase = "bottle";
}
if (j != 1) {
jcase = "bottles";
} else {
jcase = "bottle";
}
document.writeln(i + " " + icase + " of beer on the wall,");
document.writeln(i + " " + icase + " of beer,");
document.writeln("Take 1 down, pass it around,");
if (j != 0) {
document.writeln(j + " " + jcase + " of beer on the wall.");
} else {
document.writeln("No more bottles of beer on the wall!");
}
document.writeln()
}
} else {
document.write("You might want think about moving to another community.")
}
Zwar findet man im Internet immer wieder vereinzelte Versionen in diversen Programmiersprachen, aber diese Seite war mir neu:
http://internet.ls-la.net/mirrors/99bottles/.
Angefangen von A+ über EMACS Lisp bis hin zu YACC hat der Autor die "99 Bottle of beer on the wall" in 127 Programmiersprachen zusammengetragen.
Wer einen postscriptfähigen Drucker besitzt, kann z.B. mal folgendes probieren:
%!PS
% The 99 bottles of beer song in PostScript. This file
% can be sent to a PostScript printer (it'll be about
% eight pages or so...)
% Stuart Morris
% ------------- Variables & Procedures ------------
/LM 72 def % left margin
/ypos 720 def % initial top position
/BM 72 def % bottom margin
/lineheight 18 def % height of a line of text
% starts a new line
/crlf
{
ypos lineheight sub
/ypos exch def
LM ypos moveto
} def
% starts a new page if current one is full
/newpage?
{
ypos BM lt
{
showpage
/ypos 720 def
LM ypos moveto
} if
} def
% returns the correct syntax of the bottle
% string ("bottle" if one, "bottles" otherwise)
/bottlestring % stack: number of bottles
{
1 eq
{
( bottle of beer)
}
{
( bottles of beer)
} ifelse
} def
% ------------- Main Program ----------------
LM ypos moveto
/Times-Roman findfont
lineheight 2 sub scalefont
setfont
99 -1 1
{
/numbottles 2 string def
dup numbottles cvs show
dup bottlestring show ( on the wall, ) show
numbottles show dup bottlestring show (,) show
crlf
(Take one down, pass it around, ) show
1 sub dup numbottles cvs show
bottlestring show ( on the wall.) show
crlf crlf
newpage?
} for
showpage
Diesen Quelltext in einen ASCII-Editor kopieren und als *.ps-Datei oder *.prn-Datei abspeichern und zum Drucker schicken. Ergibt 8 Seiten...
Thomas J.
Huhu!
*rofl*, auch eine Möglichkeit um den Syntax verschiedener Sprachen im Hirn zu behalten ;) ...wenn man seeeeeeehr viel Zeit hat.
Kristallkind :)
Hallo Thomas
Angefangen von A+ über EMACS Lisp bis hin zu YACC hat der Autor die "99 Bottle of beer on the wall" in 127 Programmiersprachen zusammengetragen.
Das ist doch mal ne schöne Variante zum ewigen "Hallo Welt!"... ;o))
Herzliche Grüße,
Meg
hallo Welt ! *scnr*
Tach allerseits
Ich finde es immer wieder faszinierend, über welch skurile Seiten man (oder auch frau) in den Weiten des Internet so stolpern kann.
Moin!
Das Interessante ist wohl eher die Hintergrundgeschichte:
Jemand postete in einer Newsgroup den kompletten Text zu diesem Lied. Daraufhin kamen natürlich böse Reaktionen, unter anderem mit dem Hinweis, man könne sowas doch platzsparender als Programm posten, und der Beispielcode wurde gleich angehängt. Daraus wurde dann (weil sich dumme Ideen immer verselbständigen - frag mal jemand Stefan Münz zu SelfHTML ;) ) dann diese Webseite mit der Ultimativen Sammlung.
Übrigens: Mein Favorit unter den Programmiersprachen ist "Brainfuck". :)
- Sven Rautenberg
PS: Das poste ich gerade mit Lynx - ich hoffe, ich bin wegen Fehlformatierungen entschuldigt.
Hallo Thomas, liebe Forumler!
In Javascript könnte das z.B. so aussehen:
[...]
Angefangen von A+ über EMACS Lisp bis hin zu YACC...
Eine beeindruckende Liste. Da mutet es umso erstaunlicher an,
dass die zwar wenig beachtete, aber dennoch in allen aktuellen Browsern vorhandene Sprache 'BeerScript' nicht dabei ist.
Und bevor ich mich jetzt in den endlosen Weiten des Webs auf die Suche mache habe ich es kurz selber gecodet:
<pre>
<script lalluage="BeerScript">
Beer =document;function
bott1e (
beer ){var
bottle =((!
beer )?"no more":
beer )+" "+
"bottle" +((
beer !=1)?"s":"");
return bottle ;}function
Bott1e (
beer ,
bottle ){
Beer .write(
bott1e (
beer )+ " of beer on the wall"+
bottle );}if(confirm("Are you old enough to read about "+
"beer" +"\naccording to your local community standards?")){for(var
Bottle =99;
Bottle >0;
Bottle --){
Bott1e (
Bottle ,", ");
Beer .write(
bott1e (
Bottle )+" of beer,\n");
Beer .write("Take 1 down, pass it around, ");
Bott1e (
Bottle -1,".\n\n");}}else{
Beer .write("You might want think about moving to another community.")}
</script>
</pre>
Gruss,
Carsten