FunctionsFTW/99 bottles of beer
Jump to navigation
Jump to search
setNum("bottles", 99); "Set X (bottles) to 99";
setStr("form", " bottles"); "Plural";
label("l");
if(gt(getNum("bottles"), 0), () { "If X > 0";
print(numToStr(getNum("bottles"))); "X bottle(s) of beer on the wall,";
print(getStr("form"));
print(" of beer on the wall,\n");
print(numToStr(getNum("bottles"))); "X bottle(s) of beer.";
print(getStr("form")); "Take one down, pass it around,";
print(" of beer.\nTake one down, pass it around,\n");
setNum("bottles", add(getNum("bottles"), neg(1))); "X--";
if(eqNum(getNum("bottles"), 1), () { "If X = 1";
setStr("form", " bottle"); "Singular";
}, () { "Else";
setStr("form", " bottles"); "Plural";
});
if(gt(getNum("bottles"), 0), () { "If X > 0";
print(numToStr(getNum("bottles"))); "Use X";
}, () { "Else";
print("No"); "Use No";
});
print(getStr("form")); "X/No bottle(s) of beer on the wall.";
print(" of beer on the wall.\n\n");
goto("l"); "Repeat";
}, () {});
Minimized (522 bytes)
setNum("b",99);setStr("f"," bottles");label("l");if(gt(getNum("b"),0),(){print(numToStr(getNum("b")));print(getStr("f"));print(" of beer on the wall,\n");print(numToStr(getNum("b")));print(getStr("f"));print(" of beer.\nTake one down, pass it around,\n");setNum("bottles",add(getNum("b"),neg(1)));if(eqNum(getNum("b"),1),(){setStr("f"," bottle");},(){setStr("f"," bottles");});if(gt(getNum("b"),0),(){print(numToStr(getNum("b")));},(){print("No");});print(getStr("f"));print(" of beer on the wall.\n\n");goto("l");},(){});