fd 50 rt 90 fd 30 await done defer() b = new Date speed Infinity tick 60, -> if touches blue f = new Date t = (f - b) / 1000 write "Finished in " + t + " seconds!" tick null if pressed "up" then fd 1 if pressed "left" then lt 1
▶ The idea of this program is to keep track of the time of the race so you can see how fast you go.
The program uses the
You can say
b = new Date to save the
current time as
b. Then if later
(say, when you touch the blue line), you have a
f = new Date,
f - b will tell you
the number of milliseconds between the two times.
▶ The setup adds
fd 30 to
move the turtle forward 30 pixels so that it
does not start on the blue line. Or else the
race will end as soon as it starts.
await done defer()
pauses the program until all the drawing of
the track finished. (If instead we had done
speed Infinity at the beginning
of this program, this pause would not be needed.)
b = new Date creates a new
object that is a snapshot of the current time at
the beginning of the race. It
saves this time as the variable
▶ The finish line is touched when
if touches blue runs the code under it.
f = new Date creates a new
object that is a snapshot of the current time at the
finish of the race. It saves it as the variable
t = (f - b) / 1000 takes the difference
between the finish time
f and the beginning
b in milliseconds, and divides by 1000 to
get the time in seconds.
write shows the "Finished" message, and
tick null turns off the tick timer.