diff --git a/1ano/fp/aula04/turtle1.py b/1ano/fp/aula04/turtle1.py new file mode 100644 index 0000000..f000530 --- /dev/null +++ b/1ano/fp/aula04/turtle1.py @@ -0,0 +1,64 @@ +# This program uses the module turtle to draw "turtle graphics" +# For an introduction and examples, read +# https://runestone.academy/runestone/static/thinkcspy/PythonTurtle/toctree.html +# For a summary of the available methods: +# https://runestone.academy/runestone/books/published/thinkcspy/PythonTurtle/SummaryofTurtleMethods.html + +import turtle # allows us to use the turtles library + +# Make turtle t draw a square with the given side length +def square(t, side): + for n in range(4): + t.forward(side) + t.left(90) + +# Make turtle t draw a spiral. +# The first side should have length = start, the second start+incr, etc., +# until the length reaches length=end (exclusive). +def spiral(t, start, end, incr): + if start < end: + while start <= end: + t.forward(start) + t.left(90) + start += incr + else: + while start >= end: + t.forward(start) + t.left(90) + start += incr + + +def main(): + print("This program opens a window with a graphical user interface.") + wn = turtle.Screen() # creates a graphics window + alex = turtle.Turtle() # create a turtle named alex + + alex.forward(150) # tell alex to move forward by 150 units + alex.right(90) # turn by 90 degrees + alex.forward(75) # complete the second side + + beth = turtle.Turtle() # another turtle + beth.shape("turtle") # with another shape + beth.color("blue") # and color + beth.up() # pen up + beth.goto(-200, -100) # move to given point + beth.down() # pen down + square(beth, 100) # draw a square + + # This should draw a spiral + alex.up() + alex.goto(-200, 200) + alex.setheading(0) + alex.down() + spiral(alex, 10, 200, 10) + alex.up() + alex.goto(100, 100) + alex.setheading(0) + alex.down() + spiral(alex, 200, 0, -5) + + turtle.exitonclick() # wait for a button click, then close window + print("The window was closed. Bye!") + + +main()