12.6. Turtles And Randomness¶
We can use random numbers to make the results of turtle drawings unpredictable. The program
below will pick a random number between 50 and 199 and call it squareSize
. That number
gets passed to the drawSquare
function as the size of the square to draw. Each time you
run the program, the square should be a different size.
As a reminder, here are the turtle commands: Turtle procedures
Note that although we want the size of the square to be random, it is important that all the
sides of the square are the same size. That is why we pick the random number in the main
part of the program. If we picked a random number on line 3 as we draw each side, each side
would be a different length! Try changing line 3 to read turtleName.forward(random.randrange(50, 200))
to see for yourself.
We can also pick a random location for the turtle to start in. Remember that the turtle uses this coordinate system:
Because the square procedure is going to make a square up to 200 wide and tall extending
to the right and down from where we start, I don’t want it to start to the right or below
the point 0, 0 or it might go off screen. I am fine with it starting to the left of or above
that location, but I don’t want it to start right at the edge of the screen. So I want the
starting x location to be between -190 and 0 and the starting y to be between 0 and 190.
So this version of the program uses goto(x, y)
and random numbers to pick a random
starting location before drawing the square.
Try the program a few times. Each time you should get different squares.
Now let’s make it a little more interesting by picking a random color each time the program runs.
We have added a procedure called changeColor
. If you pass it the name of a turtle, and three
numbers between 0-255 representing red
, green
, and blue
values, it will make a hexadecimal
color code that represents the color with that much red/green/blue. It will then use that to set
the color of the turtle. Your task is to write code to pick three random numbers to use for the color
values.
In the location marked TODO
(line 38), add lines of code to make three random values that are
each 0-255 and name them red
, green
, and blue
.