I thought I was pretty consistent from year to year and month to month.
Each hundred steps equals roughly a minute of walking, so 8000 steps is roughly 80 minutes.





Dim xpos, ypos, angle, pencolor As Single
Dim turtlescale As Single
Dim penstatus As Integer
Dim pi As Single
Dim rowpos As Integer
Sub colorpoint(rowpos)
'comment out for LibreOffice Calc
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(rowpos).Format.Line.ForeColor.RGB = pencolor
End Sub
Sub pc(acolor)
pencolor = acolor
End Sub
Sub initturtle()
rowpos = 1
pi = 3.14
xpos = 0
ypos = 0
angle = 0
pencolor = RGB(255, 0, 0)
penstatus = 1
Cells(1, 1).Resize(500, 2).Clear
turtlescale = 1
updateturtle
End Sub
Sub tsize(x)
turtlescale = x / 100
updateturtle
End Sub
Sub updateturtle()
Cells(1, 6) = angle
Cells(2, 6) = xpos
Cells(2, 7) = ypos
Cells(3, 6) = turtlescale
End Sub
Sub pu()
penstatus = 0
End Sub
Sub pd()
penstatus = 1
End Sub
Sub setangle(x)
angle = x
updateturtle
End Sub
Sub rt(x)
angle = angle - x
updateturtle
End Sub
Sub lt(x)
rt -x
End Sub
Sub movepos(newxpos, newypos)
oldxpos = xpos
oldypos = ypos
If penstatus = 1 Then
If (rowpos = 1) Then
ActiveSheet.Cells(rowpos, 1) = oldxpos
ActiveSheet.Cells(rowpos, 2) = oldypos
colorpoint rowpos
rowpos = rowpos + 1
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
colorpoint rowpos
ElseIf (ActiveSheet.Cells(rowpos, 1) = oldxpos) And (ActiveSheet.Cells(rowpos, 2) = oldypos) Then
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
Else
rowpos = rowpos + 1
colorpoint rowpos
'assigning a cell to empty doesn't actually do anything in LibreOffice
'LibreOffice likes clear though
ActiveSheet.Cells(rowpos, 1) = Empty
ActiveSheet.Cells(rowpos, 2) = Empty
ActiveSheet.Cells(rowpos, 1).clear
ActiveSheet.Cells(rowpos, 2).clear
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = oldxpos
ActiveSheet.Cells(rowpos, 2) = oldypos
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
End If
End If
xpos = newxpos
ypos = newypos
updateturtle
End Sub
Sub fd(dist)
newxpos = xpos + Cos(angle / 360 * 2 * pi) * dist
newypos = ypos + Sin(angle / 360 * 2 * pi) * dist
movepos newxpos, newypos
End Sub
Sub bk(x)
fd -x
End Sub
Sub refresh()
Application.ScreenUpdating = False
Application.ScreenUpdating = True
End Sub
Sub test1()
Call initturtle: For j = 1 To 6: For i = 1 To 20: call refresh: lt 360 / 20: fd 20: Next i: rt 60: Next j
End Sub
Sub test2()
Call initturtle: For i = 1 To 50: call refresh: Call pu: movepos Rnd() * 50, Rnd() * 50: Call pd: movepos Rnd() * 50, Rnd() * 50: pc RGB(Rnd() * 255, Rnd() * 255, Rnd() * 255): Next i
End Sub




Dim xpos, ypos, angle, pencolor As Single
Dim penstatus As Integer
Dim pi As Single
Dim rowpos As Integer
Sub pc(acolor)
pencolor = acolor
End Sub
Sub initturtle()
rowpos = 1
pi = 3.14
xpos = 0
ypos = 0
angle = 0
pencolor = RGB(255, 0, 0)
penstatus = 1
End Sub
Sub pu()
penstatus = 0
End Sub
Sub pd()
penstatus = 1
End Sub
Sub rt(x)
angle = angle - x
End Sub
Sub lt(x)
rt -x
End Sub
Sub colorpoint(rowpos)
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(rowpos).Format.Line.ForeColor.RGB = pencolor
End Sub
Sub movepos(newxpos, newypos)
oldxpos = xpos
oldypos = ypos
If penstatus = 1 Then
If (rowpos = 1) Then
ActiveSheet.Cells(rowpos, 1) = oldxpos
ActiveSheet.Cells(rowpos, 2) = oldypos
colorpoint rowpos
rowpos = rowpos + 1
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
colorpoint rowpos
ElseIf (ActiveSheet.Cells(rowpos, 1) = oldxpos) And (ActiveSheet.Cells(rowpos, 2) = oldypos) Then
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
'rowpos = rowpos + 1
Else
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = Empty
ActiveSheet.Cells(rowpos, 2) = Empty
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = oldxpos
ActiveSheet.Cells(rowpos, 2) = oldypos
rowpos = rowpos + 1
colorpoint rowpos
ActiveSheet.Cells(rowpos, 1) = newxpos
ActiveSheet.Cells(rowpos, 2) = newypos
End If
End If
xpos = newxpos
ypos = newypos
End Sub
Sub fd(x)
newxpos = xpos + Cos(angle / 360 * 2 * pi) * x
newypos = ypos + Sin(angle / 360 * 2 * pi) * x
movepos newxpos, newypos
End Sub
Sub bk(x)
fd -x
End Sub
sub test1
Call initturtle: For j = 1 To 6: For i = 1 To 20: lt 360 / 20: fd 20: Next i: rt 60: Next j
end sub
sub test2
Call initturtle: For i = 1 To 50: Call pu: movepos Rnd() * 50, Rnd() * 50: Call pd: movepos Rnd() * 50, Rnd() * 50: pc RGB(Rnd() * 255, Rnd() * 255, Rnd() * 255): Next i
end sub
Sub colorpoint(rowpos) 'ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(rowpos).Format.Line.ForeColor.RGB = pencolor End Sub

