# Learn Python Turtle

The turtle introduction is intended to suit for younger students (such as Year 8s) who are opting-in to embrace a programming environment more challenging than Scratch but are a little intimidated by the idea of coding in a pure text environment. The turtle allows you to learn the basics through a graphical/visual system where you draw and animate various shapes on screen.

Use either of the following tools:

Lessons:

# Turtle reference

The following is a summary of turtle instructions, taken from the Python reference docs.

## Import

``````#!/usr/bin/env python3
from turtle import *
``````

The turtle will begin in the screen center, facing right. Positive angles rotate counter-clockwise

Command Example Description
`home()` `home()` return to the starting point and heading
`right( angle-in-degrees )` `right(45)` Rotate clockwise the given number of degrees
`left( angle-in-degrees )` `left(45)` Rotate counter-clockwise the given number of degrees
`goto( x-coord, y-coord )` `goto(-50, 50)` Jump to new x,y coordinates on screen
`setx( x-coord )` `setx(100)` Jump only the x coordinate to new position
`sety( x-coord )` `sety(100)` Jump only the y coordinate to new position
`setheading( new-angle-in-degrees )` `setheading(90)` Point in new direction where 0 == facing right. Positive numbers turn counter-clockwise
`forward( distance )` `forward(100)` Move forward given distance of pixels
`backward( distance )` `backward(100)` Move backward given distance of pixels
`circle( radius )` `circle(50)` Draw a circle with radius 50 pixels
`circle( radius, arc-size-in-degrees )` `circle(50, 180)` Draw part of a circle, determined by number of degrees given
`dot( radius )` `dot(50)` Draw a filled circle(dot) of given size
`hideturtle()` `hideturtle()` Will still draw but hide the little animated turtle shape. Will speed up complex drawings
`showturtle()` `showturtle()` Show the turtle when drawing

## Pen control

Command Example Description
`pendown()` `pendown()` Draw including whenever moving, jumping location
`penup()` `penup()` Stop drawing when moving
`pensize( width )` `pensize(1)` Thickness to draw lines
`isdown()` `isdown()` Returns True or False based on if the pen is down

## Get turtle information

Command Example Description
`position()` `x,y = position()` Returns an (x,y) tuple of the current location
`xcor()` `x = xcor()` Get the current x-coordinate location
`ycor()` `y = ycor()` Get the current y-coordinate location
`heading()` `direction = heading()` Get the current facing direction in degrees

## Colors

Command Example Description
`pencolor( color )` `pencolor( "yellow")` Change the pen color
`fillcolor( color )` `fillcolor( "lime")` Change the fill color - see begin_fill() and end_fill()!
`begin_fill()` `begin_fill()` Tells Python you are starting a shape you want to be filled in when complete
`end_fill()` `end_fill()` Tells Python you have finished the shape and to fill it in
`bgcolor( color )` `bgcolor( "sky blue")` Change the background color
`bgpic( picture_file )` `bgpic( "background.gif")` Set a background picture. Must be GIF format
`bgpic( "nopic" )` `bgpic( "nopic")` Removes the background picture

Note: colors can be any of the following:

## Screen settings

Command Example Description
`screensize( width, height )` `screensize( 640,480 )` Set width and height of turtle screen
`title( name )` `title( "My amazing project" )` Set title name of turtle screen
`reset()` `reset()` Clear screen, re-center turtle, reset heading to right
`clear()` `clear()` Clear screen without recentering turtle or resetting heading
`window_width()` `w = window_width()` Get screen width
`window_height()` `h = window_height()` Get screen height
`isvisible()` `vis = isvisible()` Is the turtle visible?
`speed( new-speed )` `speed(10)` Set drawing speed between 1 and 10. Normally starts at 6.
`bye()` `bye()` Close turtle
`exitonclick()` `exitonclick()` Tells Turtle to quit if the exit icon of the screen is clicked

## Events

Command Example Description
`onscreenclick( function )` `onscreenclick( click )` execute function when screen clicked. callback must take two parameters for x,y coordinates of the click
`onrelease( function )` `onrelease( click )` execute function when mouse click let go. callback must take two parameters for x,y coordinates of the click
`onkeypress( function, key )` `onkeypress( pressed, "Up" )` execute function when nominated key is pressed. callback must take two parameters for x,y coordinates of the click
`ontimer( function, time-in-ms )` `ontimer( ticktock, 1000 )` execute function once after given number milli-seconds
`mainloop()` `mainloop()` Start the main event handling loop to run your game

## Write text to screen

Command Example Description
`write( text )` `write( "Hello there")` Write text to screen where ever the turtle is
`write( text, font=(fontname,size,weighting)` `write( "Hello there", font=("Arial",10,"normal"))` Write text to screen of specified font

## Input popup prompts

Command Example Description
`textinput("title", "prompt")` `name = textinput("Name", "What is your name?"` Popup box for text information
`numinput("title", "prompt")` `num = numinput("Enter a number", "Enter a number between 0 and 100")` Popup box to enter a number

# Example 1

``````from turtle import *

def drawFlake(length, depth):
hideturtle()
if depth > 0:
for i in range(6):
forward(length)
drawFlake(length // 3, depth - 1)
backward(length)
left(60)

layers = numinput("Layers?", "How many layers of snowflake would you like me to draw?")
drawFlake(200,layers)
``````

# Example 2

The tic tac toe game from the final video can be found here