Crest/Examples
Draw a Circle
This program draws a circle by slowly rotating the turtle as it moves.
penup setpos 100 300 pendown forever [ forward 1 right 0.25 ]
Turtle Draws a Star
This program animates the turtle drawing a star over and over. This is done by repeatedly calling nextframe
to wait a certain amount of time.
showturtle forever [ clearscreen repeat 15 [ nextframe ] left 144 repeat 5 [ right 144 forward 100 repeat 15 [ nextframe ] ] repeat 15 [ nextframe ] ]
The Color Palette
This program draws all 600 colors to the screen.
setpos 0 0 repeat 600 [ back 599 setpencolor plus pencolor 1 penup setpos plus xcor 1 0 pendown ]
Key Colors
This program reads the user input pixel and fills the screen with that color.
left 90 forever [ penup setpos 599 599 pendown setpencolor pixel repeat 600 [ forward 599 setpos 599 minus ycor 1 ] nextframe ]
Color Picker
This program lets you enter a three digit number from 0-599, one digit at a time (make sure to have no keys pressed to let the program know to move to the next digit). It then displays that number as a color on the screen. Error inputting digits will make the program fill the screen with red. After the screen fill with a color, press enter to reset it.
The input is taken by waiting for the input pixel to change.
right 90 forever [ penup setpos 599 599 pendown while equal pixel 599 [ nextframe ] ifelse or lessthan pixel 48 morethan pixel 53 [ setpencolor 9 ] [ setpencolor minus pixel 48 back 1 repeat 99 [ setpencolor plus pencolor pixel ] forward 1 while not equal pixel 599 [ nextframe ] while equal pixel 599 [ nextframe ] ifelse or lessthan pixel 48 morethan pixel 57 [ setpencolor 9 ] [ setpencolor minus pixel 48 penup back 2 pendown back 0 repeat 9 [ setpencolor plus pencolor pixel ] penup forward 1 setpencolor plus pencolor pixel pendown forward 1 while not equal pixel 599 [ nextframe ] while equal pixel 599 [ nextframe ] ifelse or lessthan pixel 48 morethan pixel 57 [ setpencolor 9 ] [ setpencolor plus pencolor minus pixel 48 ] ] ] clean setpos 0 0 repeat 600 [ forward 599 setpos 0 plus ycor 1 ] setpos 599 599 while not equal pixel 13 [ nextframe ] while not equal pixel 599 [ nextframe ] clean ]
Walking Simulator
This program lets you press the arrow keys to move the turtle around.
It works by always putting the turtle where it needs to be right before calling nextframe
. The position and rotation are stored in the 3 pixels next to the input. You can even see them change as you move if you look closely enough!
showturtle penup setpos 596 599 pendown right 90 setpencolor 90 forward 1 setpencolor 300 forward 1 forever [ penup setpos 599 599 setheading 90 if equal pixel 150 [ setpos 596 599 setpencolor 90 pendown forward 0 penup setpos 597 599 setpencolor plus pixel 8 pendown forward 0 ] if equal pixel 151 [ setpos 596 599 setpencolor 270 pendown forward 0 penup setpos 597 599 setpencolor minus pixel 8 pendown forward 0 ] if equal pixel 152 [ setpos 596 599 setpencolor 180 pendown forward 0 penup setpos 598 599 setpencolor plus pixel 8 pendown forward 0 ] if equal pixel 153 [ setpos 596 599 setpencolor 0 pendown forward 0 penup setpos 598 599 setpencolor minus pixel 8 pendown forward 0 ] penup setpos 596 599 setheading pixel setpos 597 599 setpencolor pixel setpos 598 599 setpos pencolor pixel nextframe ]
The Cantor Set
This program draws the cantor set fractal with some rounding errors.
penup setpos 0 0 pendown setpencolor 1 back 0 penup setpos 1 0 pendown setpencolor 100 back 1 setpencolor 400 back 0 penup setpos 0 0 pendown setheading 90 while lessthan pixel 128 [ penup setpos pixel 0 setpencolor pixel while not equal pixel 599 [ forward 1 ] pendown forward 0 penup setpos 0 0 setpos pixel 1 setpencolor pixel setpos xcor 2 pendown forward 0 setpencolor 0 while lessthan plus plus pencolor pencolor pencolor pixel [ setpencolor plus pencolor 1 ] setpencolor minus pencolor 1 forward 0 penup setpos xcor 1 while not equal pixel 599 [ forward 1 ] pendown forward 1 penup setpos 0 0 setpos pixel 0 setpencolor pixel setpos xcor 2 setpencolor plus plus pencolor pixel pixel setpos xcor 0 while not equal pixel 599 [ forward 1 ] pendown forward 0 penup setpos 0 0 setpencolor plus pixel 1 pendown forward 0 ] penup setpos 0 1 pendown setpencolor 1 back 0 while lessthan pixel 128 [ penup setpos pixel 1 setpencolor pixel setpos xcor 0 setpos pixel plus 2 3 setheading 180 while not equal pixel 599 [ forward 2 ] setheading 90 pendown forward 0 setpencolor 0 forward pixel penup setpos 0 1 setpencolor plus pixel 1 pendown forward 0 ]