----- LOGO 15-WORD CHALLENGE FINAL REPORT -----

This contains:

1. The rules for the Logo 15-Word Challenge, and

2. A list of all contest entries.

The contest was first posted on the logo list

ended on June 1, 1997.

---------- THE LOGO 15-WORD CHALLENGE ----------

Write a Logo one-liner using 15 or fewer words,

not counting square brackets and parentheses,

to produce the most beautiful, complex, and

interesting picture.

RULES

Write a single line of Logo commands to be entered

directly at the Logo command prompt.

Do not write a named Logo procedure using "TO".

You may use "DEFINE" to define a procedure, followed

by a command to run the procedure, all on the same line.

The one-liner must have 15 or fewer words, not counting

square brackets and parentheses. For example, this

one-liner is ten words:

for [i 0 2200] [fd 3 rt (:i * :i)]

Any initial commands to move the turtle to a better

starting position and clear the screen are not

counted as part of the one-liner.

The one-liner must be self-contained: it cannot rely on

pre-defined variables, non-primitive procedures,

external files, etc.

The one-liner must use only one turtle.

The one-liner must not use color.

PORTABILITY

The one-liner should be reasonably portable. In other

words, the one-liner should use only commands which are

likely to be easily translated into equivalent commands

in common Logo implementations.

I will use MSW Logo version 4 to run the one-liners.

Some MSW Logo commands, syntax, and primitives which are

acceptable:

fd, bk, lt, rt

for [i 0 100] [ print :i ]

repeat 100 [ print repcount ]

make "x :x + 1

if :i = 0 [ ... ]

ifelse :i < 0 [ ... ] [ ... ]

setx x, sety y, setxy x y, setpos [ x y ]

setheading x, seth x

penreverse, px (pen reverses underlying color)

setpensize [ x y ] (x and y must be the same)

wrap, window, fence (wrap mode is the default)

x + y, x - y, x * y, x / y,

remainder x y, int x, round x,

sqrt x, power x y, exp x, log10 x, ln x,

sin x, cos x, arctan x

random x

define "square [[x] [repeat 4 [fd :x rt 90]]]

parentheses are acceptable

Some commands which are NOT acceptable:

arc, circle

setpc (color is not allowed)

For other Logos, change "for [i 0 10] [...]" to

something like "make "i 0 repeat 10 [... make "i :i+1]",

but this takes many more words.

For MicroWorlds, change "for [i 0 10]" to "dotimes [i 10]".

THE RESET PROCEDURE

I have added "reset" to the beginning of each one-liner

to remind you to reset all modes. You may define "reset"

as a procedure. (Don't count "reset" as a word.)

MSW Logo / UCB Logo:

to reset

cs ht pd wrap zoom 1 penpaint setpensize [1 1]

setpc [0 0 0] setsc [255 255 255] setfloodcolor [0 0 0]

setscrunch 1 1

end

You may choose whether you prefer HT or ST.

For UCB Logo, you may want to add CT (CLEARTEXT).

You may want to add RESET to the library (LOGOLIB)

so that it is available whenever you start Logo.

MicroWorlds Logo:

to reset

cg ht pd setpensize 1

setc 9 setbg 0

end

EXAMPLE ONE-LINERS UNDER 15 WORDS

The following example one-liners run in MSW Logo.

Simple Scroll, 8W

reset for [i 0 1000] [fd 10 rt :i]

Curly Cloud, 10W

reset for [i 0 2200] [fd 3 rt (:i * :i)]

(Very pretty and very simple)

Growing Scrolls, 10W

reset for [i 0 3000] [fd (:i / 100) rt :i]

Slalom Scrolls, 11W

reset for [i 0 2000] [fd 5 rt (90 * sin :i)]

Wiggly Star, 13W

reset for [i 0 4320] [fd 3 rt (90 * sin (:i * :i))]

Hairy Star, 13W

reset for [i 0 4700] [fd 8 rt (180 * sin (:i * :i))]

Jaggy Star, 13W

reset for [i 0 2200] [fd (20 * sin :i) rt (:i * :i)]

Strange Tracks, 13W

reset for [i 0 10000] [fd 5 rt (180 * sin (power :i 1.5))]

(Note: "power :i 1.5" is the same as ":i * sqrt :i")

Bullring, 14W

reset for [i 0 1002] [fd 8 seth (360 * (power :i 3) / 1002)]

(Bullring is from "Another Fine Math You've Got Me Into..."

by Ian Stewart)

HOW TO ENTER

E-mail one or more one-liners using 15 or fewer words

to Keith Enevoldsen at

E-mail your entry on or before June 1, 1997.

Please use "Logo contest entry" as the subject line.

Feel free to share your entries with the logo list

but official entries must be e-mailed to me directly.

I will post updates on the logo list.

Please include a descriptive or whimsical name for each

one-liner.

One-liners do not need to be original. I want the best

one-liners, old or new.

JUDGING

I (and whoever else happens to be around) will choose

the best one-liners based on these criteria:

1. The beauty, complexity, and interestingness

of the picture, and

2. The simplicity of the commands.

I will announce the winners on the logo list on or

before June 8, 1997.

There will be NO prizes! This is just for fun!

---------- CONTEST ENTRIES ----------

Here are all the contest entries.

I have also included some one-liners by myself

which are, of course, ineligible for the contest.

I invented names (marked with asterisks) for all

unnamed entries.

Random Lines*, 9W, Michael Tempel

reset repeat random 1000 [fd random 1000 rt random 360]

(This usually produces Jackson Pollacks, but there is

a chance that it will produce a Michelangelo.)

Square Spiral*, 14W or 9W, Yehuda Katz

reset px make "x 1 repeat 1000000 [fd :x rt 90 make "x :x+1]

reset px for [x 1 1000000] [fd :x rt 90]

(It seems simple, but it has a surprising effect.)

Square Spiral variation 1, 9W, Keith Enevoldsen

reset px for[x 1 1000000] [fd :x rt 89.99]

Square Spiral variation 2, 14W or 8W, Bill Kerr

reset make "x 1 repeat 150 [fd :x rt 89 make "x :x+1]

reset for [x 1 150] [fd :x rt 89]

Sine Wave, 15W, Shachar Katz

reset sety 1000 home setx 1000 for [x -180 180] [setxy :x 70*sin :x]

(Who needs Mathematica?)

Radar, 11W, Zippi Katz

reset px repeat 1000000 [fd 40 fd 40 bk 80 rt 1]

(No, "fd 40 fd 40" cannot be replaced by "fd 80"!)

Radar variation 1, 12W, Bill Kerr

reset repeat 3600 [px fd 80 fd 0 bk 80 lt random 360]

Radar variation 2, 7W, Keith Enevoldsen

reset px repeat 10000 [fd 200 rt 179]

Brownian Motion, 14W, Erez Katz

reset repeat 10000 [fd 3*(-1+random 2) rt 90*random 4]

(Maybe it should be named urban sprawl.)

Feathers*, 13W, Marian Rosen

reset repeat 12 [repeat random 50 [fd 100 bk 95 rt 2] rt 180]

(Very pretty.)

Feathers variation 1, 13W, Keith Enevoldsen

reset repeat 50 [repeat random 100 [fd 300 bk 295 rt 2] rt 180]

Spiral*, 11W, Olga Tuzova

reset for [i 0.01 4 0.05] [repeat 180 [fd :i rt 1]]

Ring*, 10W, Olga Tuzova

reset px setpensize [20 20] repeat 100000 [fd 2 rt 2]

(Looks like a caterpillar to me.)

Ring variation 1, 10W, Keith Enevoldsen

reset px setpensize [200 200] repeat 36 [fd 20 rt 10]

Circus* (Ring variation 2), 14W, Olga Tuzova

reset px setpensize [100 100] repeat 1000 [repeat 72 [fd 20 rt 10] rt 90]

Cubism (Ring variation 3), 15W, Yehuda Katz

reset px for [x 10 200] [setpensize se :x :x repeat 36 [fd 20 rt 15]]

Milky Way, 15W, Olga Tuzova

reset setsc [0 0 0] px setpensize [10 10] repeat 100000 [fd 10 rt random 360]

(Cosmic!)

Inky Dots, 14W, Olga Tuzova

reset setpensize [10 10] repeat 10000 [pu fd 15 pd fd 0 rt random 360]

(Don't worry, you can remove the stains with CS.)

Inky Dots variation 1, 15W, Yehuda Katz

reset px setpensize [10 10] repeat 10000 [pu fd 15 pd fd 0 rt random 360]

Rose, 13W, M.H. Elhefni (shortened by Yehuda Katz)

reset for [t 0 180 3] [seth :t fd 200*sin :t home]

Rose variation 1, 14W, Keith Enevoldsen

reset for [t 0 180] [seth :t fd 200*sin :t*7 home]

Rose variation 2, M.H. Elhefni

reset repeat 9 [for [i 10 200 10] [fd :i bk :i rt 2]]

Lissajous, 15W, M.H. Elhefni

reset for [t 0 360] [setxy 200*sin :t 200*cos :t*5]

Lissajous variations 1-4, 15W, Samuel Kilchenmann

reset repeat 360 [setxy (sin(2 * repcount)) * 150 (sin(3 * repcount)) * 150]

reset repeat 360 [setxy (sin(89 * repcount)) * 150 (sin(179 * repcount)) *

150]

reset repeat 360 [setxy (sin(254 * repcount)) * 150 (sin(201 * repcount)) *

150]

reset repeat 360 [setxy (sin(327 * repcount)) * 150 (sin(66 * repcount)) *

150]

(Very pretty variations.)

Times, 14W, Yehuda Katz

for [i 1 10] [repeat 10 [type form repcount*:i 4 0] pr[]]

(This one uses the text screen.)

Shell, 14W, Vered Katz

reset for [scr .2 1.75 .05] [setscrunch 1 :scr repeat 360 [fd :scr rt 1]]

(This one makes me as happy as a clam!)

Dahlia, 14W, David Eisenstat

reset repeat 8 [rt 45 repeat 6 [repeat 90 [fd 2 rt 2] rt 90]]

(The 6 can be replaced with 1 to 7 for other flowers.

For numbers greater than 7, the patterns repeat.)

Hypercube, 12W, Frank Caggiano

reset repeat 8 [repeat 4 [rt 90 fd 100] bk 100 lt 45]

(Logo enters a higher dimension!)

Pencil Sketch*, 15W, Andrzej Baczynski (shortened by Yehuda Katz)

reset repeat 5000 [run list item sum 1 random 4 [fd bk rt lt] random 10]

(Looks even more like a pencil sketch if you use px.)

Scribble, 15W, Keith Enevoldsen

reset repeat 1000 [fd 3 rt random int 20*(1+sin(10*repcount))]

Fan Flower, 12W, Keith Enevoldsen

reset repeat 12 [repeat 75 [fd 100 bk 100 rt 2] fd 250]

Current, 10W, George Mills

reset repeat 5100 [fd 10 rt arctan (remainder repcount 100)/100]

(Math is beautiful.)

Elliptical Spiral, 15W, George Mills

reset repeat 3600 [setxy repcount/10 * sin repcount repcount/20 * cos

repcount]

Tree Growth Rings, 13W, George Mills

reset repeat 36000 [setxy (sqrt repcount) * sin repcount (sqrt repcount) *

cos repcount]

(Pretty computer artifacts.)

Cloudy Night, 8W, George Mills

reset repeat 6000 [fd repcount rt remainder repcount 360]

(Happy stargazing.)

Simple Flower, 13W, Julie Clune

reset repeat 11 [for [i 0 359] [fd 1 rt (sin :i / 2)]]

(Why does the line match up exactly after

drawing 11 petals?)

Seconds, 15W, Zippi Katz

reset px st setpensize [5 5] repeat 1000 [fd 100 wait 40 bk 100 rt 6]

(Clever use of the triangular turtle.)

Face, 15W, Yehuda Katz

reset pu rt 30 repeat 12 [fd 110 pd label repcount pu bk 110 rt 30]

(Try this: first run Face, then, without clearing

the screen, run Seconds.)

Face variation 1, 13W, Yehuda Katz

reset pu repeat 12 [fd 110 pd label "- pu bk 110 rt 30]

Self-Replicating, 13W, Brian Harvey

invoke [[x] print (list "invoke :x :x)] [[x] print (list "invoke :x :x)]

(This non-graphics one-liner prints itself.)

Basic Spinning Wheel variations 1-3, 15W, Greg Simkins' 6th grade class

reset define "spin [[][repeat 15 [fd 100 bk 100 rt 5]]] repeat 25 [spin fd

100]

reset define "spin [[][repeat 15 [fd 100 bk 95 rt 10]]] repeat 12 [spin fd

100]

reset pu setpos [-400 0] pd

define "spin [[][repeat 25 [fd 100 bk 100 rt 15]]] repeat 24 [spin fd 100]

Basic Spinning Wheel variations 1-3, 12W, shortened by Yehuda Katz

reset repeat 25 [repeat 15 [fd 100 bk 100 rt 5] fd 100]

reset repeat 12 [repeat 15 [fd 100 bk 95 rt 10] fd 100]

reset pu setpos [-400 0] pd

repeat 24 [repeat 25 [fd 100 bk 100 rt 15] fd 100]

Low, 15W, Alessio Plebe

reset pu setx -100 pd

for [i 0 32] [repeat :i [fd :i rt 358 / :i] bk sqrt :i]

Layers, 15W, Alessio Plebe

reset for [i 0 420] [seth :i repeat :i [fd 2 rt 1] pu home pd]

(A bit slow, but it's worth the wait.)

Black Sun, 13W, Alessio Plebe

reset repeat 2000 [pu home seth random 361 fd 40 pd fd random 200]

Hexagon, 15W, M.H. Elhefni

reset for [i 100 30 -50] [repeat 6 [repeat 6 [fd :i lt 60] lt 60]]

(Quasi-fractal.)

Hexagon variation 1, 15W, Yehuda Katz

reset for [size 20 80 20] [repeat 6 [repeat 6 [fd :size rt 60] rt 60]]

Hexagon variation 2, 15W, M.H. Elhefni

reset for [i 100 10 -5] [repeat 6 [repeat 6 [fd :i lt 60] lt 60]]

Pentahexagon, 10W, M.H. Elhefni

(shortened by Keith Enevoldsen)

reset repeat 5 [repeat 6 [fd 100 lt 72] lt 144]

Pentahexagon variation 1, 15W, M.H. Elhefni

reset for [i 100 10 -5] [repeat 5 [repeat 6 [fd :i lt 72] lt 144]]

Pentagon, 15W, M.H. Elhefni

reset for [i 100 10 -10] [repeat 5 [repeat 5 [fd :i lt 72] lt 72]]

Pentagon variation 1, 15W, M.H. Elhefni

reset for [i 100 10 -10] [repeat 5 [repeat 5 [fd :i lt 72] lt 72]]

Moire, 9W, Yehuda Katz

reset window repeat 180 [fd 500 bk 500 rt 2]

Fireworks, 14W, M.H. Elhefni

reset for [i 0 220 0.0001*sin :i] [fd :i bk :i rt 10]

Peltonwheel, 14W, M.H. Elhefni

reset for [i 0 220 sin :i/1000] [fd :i bk :i rt 51]

Spirals, 14W, M.H. Elhefni

reset for [i 0 220 sin :i/1000] [fd :i bk :i rt 41]

Gillyflower, 15 W, Alessio Plebe

reset repeat 450 [make "a 73 * sin repcount fd :a rt 88 * cos :a]

Growing Scrolls variation 1, 12W, Keith Enevoldsen

reset for [i -1 4] [repeat 720 [fd power 2 :i rt repcount]]

Growing Scrolls variation 2, 14W, Keith Enevoldsen

reset for [i -1 15] [repeat 720 [fd power 1.2 :i rt repcount] lt 45]

Growing Scrolls variation 3, 11W, M.H. Elhefni

reset for [i 1 14 6] [repeat 720 [fd :i rt repcount]]

Growing Scrolls variation 4, 13W, M.H. Elhefni

reset for [i 1 18 2] [repeat 720 [fd :i rt repcount] lt 45]

Mountains, 12W, Keith Enevoldsen

reset repeat 2000 [setxy (repcount * 2) (ycor - 2 + random 5)]

Head, 15W, Keith Enevoldsen

reset repeat 38 [fd 5 rt 10] setx 55 setx 27 setxy 20 -10 setx 27

Five Rose and Ten Rose, 14W, Paolo Passaro

reset repeat 1800 [rt repcount fd 10 lt repcount fd 5 rt repcount rt .1]

reset repeat 3600 [rt repcount fd 10 lt repcount fd 1 rt repcount rt .2]

(Very beautiful!)

Five Rose variation 1 (Starfish), 10W, Julie Clune

reset repeat 1800 [rt 1 fd 10 lt repcount rt .1]

Five Rose variation 2 (Starfish), 8W, Paolo Passaro

reset repeat 1800 [fd 10 rt repcount + .1]

(So beautiful and so simple.)

Eye, 12W, Paolo Passaro

reset repeat 1800 [fd ln repcount bk 10*sin repcount rt 10]

Growing, 13W, Paolo Passaro

reset repeat 360 [repeat repcount [repeat repcount [fd repcount lt 15] home]

lt 1]

(You may want to stop it before it is done.)

Don Quixote, 14W, Paolo Passaro

reset px repeat 360 [repeat repcount [repeat repcount [fd repcount lt 15]

home] lt 1]

(Read the book.)

Ellipse, 14W, Paolo Passaro

reset repeat 360 [rt repcount fd 1 lt repcount*2 fd 0.5 rt repcount]

(The eccentricity is e=0.5. If e=0, you have a circle and

if e<0 or e>0 you have an ellipse, horizontal or vertical.

See Abelson-Di Sessa: "Turtle geometry".)

Polygon variations 1-3, 14W, Paolo Passaro

reset repeat 4 [repeat 30 [lt 90 fd 4 rt 90 fd 4] rt 90]

reset repeat 4 [repeat 20 [lt 160 fd 20 rt 160 fd 20] rt 90]

reset repeat 8 [repeat 20 [lt 170 fd 20 rt 170 fd 20] rt 45]

(Zig-zag polygons.)

Rotating Circle, 11W, M.H. Elhefni

reset px repeat 4000 [repeat 34 [fd 12 rt 10] rt 90]

Smiling Fish, 15W, Yehuda Katz

reset pu setx -157 pd

for [t -315 315] [setxy :t*sin :t :t*cos 2*:t]

(It looks better like this:

for [t -315 315] [setxy :t*sin :t .3*:t*cos 2*:t]

but then it is too many words.)

Disappearing Triangle, 14W, Olga Tuzova

reset px repeat 360 [setx 200*(cos repcount) sety xcor*(cos repcount) home]

Bird's Wings, 15W, Olga Tuzova

reset repeat 360 [setx 200*(sin repcount) sety xcor*(cos 2*repcount) home]

Butterfly, 15W, Olga Tuzova

reset repeat 360 [setx 200*(sin 2*repcount) sety xcor*(cos repcount) home]

Fish, 15W, Olga Tuzova

reset repeat 360 [setx 200*(cos 2*repcount) sety xcor*(cos repcount) home]

Block, 12W, de Walt Smith

reset repeat 25726 [setpos se (50 - random 100) (50 - random 100)]

Octa-octagon*, 15W, M.H. Elhefni

reset for [l 10 80 5] [repeat 8 [repeat 8 [fd :l rt 45] rt 45]

Penta-octagon*, 15W, M.H. Elhefni

reset for [l 10 80 5] [repeat 5 [repeat 8 [fd :l rt 45] rt 72]

Octa-star Spiral, 15W, M.H. Elhefni

reset for [l 0 120 4] [repeat 8 [fd :l rt 135] fd :l rt 30]

Penta-star Spiral, 15W, M.H. Elhefni

reset for [l 0 95 3] [repeat 5 [fd :l rt 144] fd :l rt 30]

Designs* 1-5, 12-14W, Alex Mylonas' class

reset repeat 36 [fd 60 rt 61 bk 80 lt 41 fd 85 rt 41]

reset repeat 16 [fd 85 lt 60 fd 107 bk 72 lt 53 fd 74]

reset repeat 100 [fd 5+repcount rt 45 fd 10+repcount rt 60]

reset repeat 36 [repeat 36 [fd 10 rt 10] fd repcount rt 90 fd repcount]

reset repeat 18 [repeat 5 [rt 40 fd 100 rt 120] rt 20]

ENTRANTS

Thank you all!

---------------------------------------------------------------