Let's draw some pretty pictures today!

`ZTurtle`

classEach of the above pictures is easier to draw if you think of a pen on a piece of paper, and you give it commands such as: move forward, turn left, move forward some more, turn right, and so on.

Historically, this mode of graphics is called "Turtle Graphics", as the pen is replaced with a turtle walking around on a sandy beach, dragging it's tail in the sand. By telling the turtle to "move forward", it creates a line in the sand. You can even tell the turtle to lift it's tail up while moving, if you don't want to create a line.

Today we are stilreplaced with a turtle walking around on a sandy beach, dragging it's tail in the sand. By telling the turtle to "move forward", it creates a line in the sand. You can even tell the turtle to lift it's tail up while moving, if you don't want to create a line.

Today we are still going to use
Zelle graphics, but
we will create a `ZTurtle`

class that acts like the "Turtle Graphics" described above.

Here is the starting code for the `ZTurtle`

class. I have already written the
`forward()`

method, as that involves a little trigonometry. The rest is up to you.
Write a method and then test it out. Once you have all methods written, try running
the `testturtle.py`

program to make sure it all works.

```
"""
turtle class using zelle graphics
Fall 2015
"""
from graphics import *
from math import *
###############################################################
class ZTurtle(object):
"""Zelle Graphics Turtle"""
# you need to write:
#
# __init__ construct new turtle, given x,y coords and graphics win
#
# hint...use these instance variables:
# self.x current x position
# self.y current y position
# self.heading current heading (0 means East,90 North)
# self.tailup True if tail is up, False if down
# self.window the graphics window for drawing
# self.color color used for drawing
#
# __str__ return string with x,y,heading, and tail up or down
# setColor change color of pen
# setHeading set turtle direction
# turn alter turtle direction by certain angle
# down put tail down
# up lift tail up
# moveto magically move turtle to location x,y (no drawing)
# dot drop a visible marker at current location
def forward(self, ds):
"""move forward a distance ds, draw if tail is down"""
currpt = Point(self.x, self.y)
theta = radians(self.heading)
dx = ds*cos(theta)
dy = ds*sin(theta)
nx = self.x + dx
ny = self.y + dy
newp = Point(nx, ny)
if not self.tailup:
L = Line(currpt, newp)
L.draw(self.window)
L.setFill(self.color)
self.x = nx
self.y = ny
###############################################################
if __name__ == "__main__":
gw = GraphWin("zturtle test", 500, 500)
gw.setBackground("gray")
t = ZTurtle(100,100,gw)
print(t)
t.down()
t.forward(100)
gw.getMouse()
```

Once you have a working `ZTurtle`

class, see if you can get `koch.py`

to work.
This is a recursive graphics program that either moves forward a given amount,
or calculates a smaller (1/3rd) length and recurs. Here are the first few Koch
curves for low values of `n`

. Can you see the pattern?