99 Bottles x 12 or Studies in Impatience

December, 2008

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
	]
]

 

Related projects: