Taking off from the children's song, "99 Bottles of Beer on the Wall," this piece creates allegorical software in which the path of drawing turtle of logo progressively gets more wobbly.
cs
setTypeSize 28
make "howManyBottles 99
make "radius 300
make "heading 0
make "degrees 360/:howManyBottles
repeat 99 [
setx 0
sety 0
make "heading :heading + :degrees
setHeading :heading
pendown
repeat :radius [
make "drunkeness ((random 200) - 100) / (:howManyBottles / 2.5)
right :drunkeness
fd 1
]
penup
fd (remainder (:howManyBottles + 6) 10) * 8
graphicsType :howManyBottles
make "lineNumber 1
repeat 2 [
say :howManyBottles
waitForSpeech
back 33
if :howManyBottles > 1
[
say [bottles]
waitForSpeech
back 33
] [
say [bottle]
waitForSpeech
back 33
]
say [of beer]
waitForSpeech
back 33
if :lineNumber = 1 [
say [on the wall]
waitForSpeech
back 33
] [
]
make "lineNumber :lineNumber + 1
]
say [you take one down and pass it arround]
waitForSpeech
back 33
make "howManyBottles :howManyBottles - 1
if :howManyBottles > 0 [
say :howManyBottles
waitForSpeech
back 33
if :howManyBottles > 1
[
say [bottles]
waitForSpeech
back 33
] [
say [bottle]
waitForSpeech
back 33
]
say [of beer on the wall]
waitForSpeech
back 33
] [
say [no more of those bottles of beer on the wall! where did they go anyways?]
waitForSpeech
back 33
stop
]
]