. .

JavaScript: „99 Bottles of Beer“ mit JavaScript-Engine SpiderMonkey


SpiderMonkey gilt als erste jemals entwickelte JavaScript-Engine (lt. Wikipedia), die aktuell von der Mozilla Foundation weiterentwickelt wird.
Ursprünglich verwendete man JavaScript ausschließlich im Browser, mittlerweile findet JavaScript aber auch außerhalb davon Verwendung, so zum Beispiel auf Mikrocontrollern.

Um SpiderMonkey auszuprobieren, griff ich auf einen recht beliebten Code-Fall zurück: 99 Bottles of Beer.

Man kann zur Ausführung des Codes in den interaktiven Modus von SpiderMonkey wechseln: `js -i‘.
Natürlich kann das Script aber auch in einer Datei gespeichert und mit `js <datei>‘ ausgeführt werden.

/*
 * This small example was tested on gentoo Linux (current date: 2013-10-14)
 * with JavaScript Shell out of portage: dev-lang/spidermonkey-1.8.5-r4
 *
 * Use it like this: `js -i' and paste this code
 */

function printBottlesOfWhatever(what, count) {

    var textWall = "of " + what + " on the wall";
    var textBottlesFirst = " bottles ";
    var textBottlesSecond = " bottles ";
    var textPrinted = "";

    for (i = count; i > 0; i--) {
        next_i = i - 1;

        if (next_i == 1)
            textBottlesSecond = " bottle ";
        if (i == 1)
            textBottlesFirst = " bottle ";

        textPrinted = i + textBottlesFirst + textWall + ", " + i +
                textBottlesFirst + "of " + what + ".\n";
        textPrinted += "Take one down and pass it around, ";

        if (i == 1)
            textPrinted += "no bottles ";
        else
            textPrinted += next_i + textBottlesSecond;

        print(textPrinted + textWall + ".\n")
    }

    print("No more bottles of " + what + " on the wall, no more bottles of " + what + ".");
    print("Go to the store and buy some more, " + (count > 0 ? count :
            "still no") + " bottle" + ((count != 1) ? "s" : "") +
            " of " + what + " on the wall.\n");
}

printBottlesOfWhatever("beer", 99);


Die Ausgabe sollte dann so sein:


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>