CIS 166: Introductory Programming

Lehman College, City University of New York

Spring 2014

This lab focuses on decisions.

In Lab 3, we started with a program that drew a square to the screen, using turtle graphics:
`daniel`, moved forward 100 steps, made a 90 degree right
turn, and then repeated these actions for a total of 4 times. Let's modify it, so, that it
will draw an 8 sided polygon:
`numSides`) and use it in range statement in the for-loop as well as calculating
the amount needed to turn each time.
`i` is odd? Let's add in an
`else` to our `if` statement:
`i`.
Next, change your program to make a 10-sided polygon (hint: you only need to change one line).

import turtle def main(): daniel = turtle.Turtle() #Set up a turtle named "daniel" myWin = turtle.Screen() #The graphics window #Draw a square for i in range(4): daniel.forward(100) #Move forward 10 steps daniel.right(90) #Turn 90 degrees to the right myWin.exitonclick() #Close the window when clicked main()Recall, our turtle, named

import turtle def main(): numSides = 8 #Number of sides of the polygon daniel = turtle.Turtle() #Set up a turtle named "daniel" myWin = turtle.Screen() #The graphics window #Draw a square for i in range(numSides): daniel.forward(100) #Move forward 10 steps daniel.right(360/numSides) #Turn 90 degrees to the right myWin.exitonclick() #Close the window when clicked main()To make it easier to modify, we stored the number of sides in just one place (the variable named

Run the program to make sure there's no errors. On the graphics window, you should see an octogon (8-sided) figure. How would you make an octogon like this:

Notice that the edges change colors, the first, third, fifth, and seventh edges are red;
while the second, fourth, sixth, and eighth edges are green. Since we start counting with
0, we have that the edges are red when the loop index variable `i` is 0,2,4,6. The edges
are green when the loop index variable is 1,3,5,7.

To make the colors change, we need to test for when the loop index variable is even.
A way to say that mathematically is `i` is even when `i` divided by 2 has no remainder.
In python, we can write that as:

if i % 2 == 0: daniel.color("red")Let's add that to our program:

#Blinking turtle for introductory programming lab import turtle def main(): numSides = 8 daniel = turtle.Turtle() #Set up a turtle named "daniel" myWin = turtle.Screen() #The graphics window #Draw a square for i in range(numSides): if i % 2 == 0: daniel.color("red") daniel.forward(100) #Move forward 10 steps daniel.right(360/numSides) #Turn 90 degrees to the right myWin.exitonclick() #Close the window when clicked main()What does that do? How do we make the color green for when

if i % 2 == 0: Turn daniel red else: Turn daniel greenPutting all the pieces together, we get:

#Blinking turtle for introductory programming lab import turtle def main(): numSides = 8 daniel = turtle.Turtle() #Set up a turtle named "daniel" myWin = turtle.Screen() #The graphics window #Draw a square for i in range(numSides): if i % 2 == 0: daniel.color("red") else: daniel.color("green") daniel.forward(100) #Move forward 10 steps daniel.right(360/numSides) #Turn 90 degrees to the right myWin.exitonclick() #Close the window when clicked main()Try the program to make sure that the colors change, depending on the value of