This task is part of project04 which is due at 23:00 EST on 2026-10-06.
This is an individual task that you must do on your own.
You can download the starter code for this task using this link.
See how to submit this task using this link.
Put all of your work for this task into the file
circles.py
(you will create this file from scratch)
In this task you will define the following functions:
concentricCirclesmulticolorCirclesYour circles.py file should begin with this header, which you should
paste into the file and fill out (as usual, each function you write must
be documented):
"""
Authors:
Consulted:
Date:
Purpose: CS 111 circles task: draws concentric circles in alternating
colors.
"""
turtle and turtleBeads by putting the
following lines at the beginning of your code (import turtleBeads first
so that the beLoud print statements will work correctly):
from turtleBeads import *
from turtle import *
concentricCirclesIn this subtask, your goal is to generate pictures like those shown in
these examples for concentricCircles,
consisting of multiple concentric circles of alternating colors that form
a bullseye pattern.
Define the concentricCircles
function such that:
for loop or a while
loop to draw the
circles.turtleBeads drawDot
function
(reference for drawDot) to draw your
circles, rather than using the turtle circle function or the
turtleBeads drawCircle function, because we will grade based on
whether your calls to drawDot are
correct. drawDot works just
like drawCircle, except that it is much faster, the circle it draws
is always filled in, and it uses the pen color, not the fill color
(this also means you don't need to call begin_fill and end_fill).You can test your concentricCircles function by executing the example
code in the shell. We recommend using noTrace beforehand and
showPicture afterwards to speed things up. We have also supplied a
test_circles.py file that draws four circles and uses optimism to
check that the printed output is correct.
multicolorCirclesFor this part, you will create a multicolorCircles
function that uses a
(possibly nested) loop to draw concentric circles using an arbitrary
number of colors. These
multicolorCircles examples show how it
should work.
multicolorCircles must accept 3 parameters:
concentricCircles above). The
second-smallest circle will have twice this radius, the
third-smallest three times this radius, and so on.concentricCircles you were given the outermost radius
as an argument, in multicolorCircles you are given the innermost
radius. This value is also the difference between the radii of each
successive circle, so for example, if the value was 10 and there were
3 circles, their radii would be 10, 20, and 30.concentricCircles, you must use the turtleBeads
drawDot
function
to draw your circles, rather than using the turtle circle
function or the turtleBeads drawCircle function, because we will
grade based on whether your calls to drawDot are
correct.concentricCircles examples
These examples show what should be drawn when concentricCircles is called. Note that the turtle does not need to move from the starting position at all. Also note that the printed output rounds of the radii to make them easier to read, but the actual radii are not rounded; you should NOT use the 'round' function in your code.
In []:PrintsconcentricCircles(60, 3, 'HotPink', 'LightSkyBlue1')A HotPink dot at (0, 0) with radius 60 A LightSkyBlue1 dot at (0, 0) with radius 40 A HotPink dot at (0, 0) with radius 20ImageIn []:
PrintsconcentricCircles(190, 4, 'LightSalmon2', 'Khaki1')A LightSalmon2 dot at (0, 0) with radius 190 A Khaki1 dot at (0, 0) with radius 142 A LightSalmon2 dot at (0, 0) with radius 95 A Khaki1 dot at (0, 0) with radius 48ImageIn []:
PrintsconcentricCircles(140, 7, 'Gold', 'DeepSkyBlue')A Gold dot at (0, 0) with radius 140 A DeepSkyBlue dot at (0, 0) with radius 120 A Gold dot at (0, 0) with radius 100 A DeepSkyBlue dot at (0, 0) with radius 80 A Gold dot at (0, 0) with radius 60 A DeepSkyBlue dot at (0, 0) with radius 40 A Gold dot at (0, 0) with radius 20Image
multicolorCircles examples
These examples show what should be drawn when multicolorCircles is called. Note that the turtle does not need to move from the starting position at all. Also note that the printed output rounds of the radii to make them easier to read, but the actual radii are not rounded; you should NOT use the 'round' function in your code.
In []:PrintsmulticolorCircles(16, ['black', 'blue', 'red', 'yellow'], 1)A black dot at (0, 0) with radius 64 A blue dot at (0, 0) with radius 48 A red dot at (0, 0) with radius 32 A yellow dot at (0, 0) with radius 16ImageIn []:
PrintsmulticolorCircles( 12, ['red', 'orange', 'yellow', 'green', 'blue', 'navy', 'purple3'], 2 )A red dot at (0, 0) with radius 168 A orange dot at (0, 0) with radius 156 A yellow dot at (0, 0) with radius 144 A green dot at (0, 0) with radius 132 A blue dot at (0, 0) with radius 120 A navy dot at (0, 0) with radius 108 A purple3 dot at (0, 0) with radius 96 A red dot at (0, 0) with radius 84 A orange dot at (0, 0) with radius 72 A yellow dot at (0, 0) with radius 60 A green dot at (0, 0) with radius 48 A blue dot at (0, 0) with radius 36 A navy dot at (0, 0) with radius 24 A purple3 dot at (0, 0) with radius 12ImageIn []:
PrintsmulticolorCircles(4, ['Aquamarine2', 'Khaki2', 'LimeGreen'], 12)A Aquamarine2 dot at (0, 0) with radius 144 A Khaki2 dot at (0, 0) with radius 140 A LimeGreen dot at (0, 0) with radius 136 A Aquamarine2 dot at (0, 0) with radius 132 A Khaki2 dot at (0, 0) with radius 128 A LimeGreen dot at (0, 0) with radius 124 A Aquamarine2 dot at (0, 0) with radius 120 A Khaki2 dot at (0, 0) with radius 116 A LimeGreen dot at (0, 0) with radius 112 A Aquamarine2 dot at (0, 0) with radius 108 A Khaki2 dot at (0, 0) with radius 104 A LimeGreen dot at (0, 0) with radius 100 A Aquamarine2 dot at (0, 0) with radius 96 A Khaki2 dot at (0, 0) with radius 92 A LimeGreen dot at (0, 0) with radius 88 A Aquamarine2 dot at (0, 0) with radius 84 A Khaki2 dot at (0, 0) with radius 80 A LimeGreen dot at (0, 0) with radius 76 A Aquamarine2 dot at (0, 0) with radius 72 A Khaki2 dot at (0, 0) with radius 68 A LimeGreen dot at (0, 0) with radius 64 A Aquamarine2 dot at (0, 0) with radius 60 A Khaki2 dot at (0, 0) with radius 56 A LimeGreen dot at (0, 0) with radius 52 A Aquamarine2 dot at (0, 0) with radius 48 A Khaki2 dot at (0, 0) with radius 44 A LimeGreen dot at (0, 0) with radius 40 A Aquamarine2 dot at (0, 0) with radius 36 A Khaki2 dot at (0, 0) with radius 32 A LimeGreen dot at (0, 0) with radius 28 A Aquamarine2 dot at (0, 0) with radius 24 A Khaki2 dot at (0, 0) with radius 20 A LimeGreen dot at (0, 0) with radius 16 A Aquamarine2 dot at (0, 0) with radius 12 A Khaki2 dot at (0, 0) with radius 8 A LimeGreen dot at (0, 0) with radius 4Image
concentricCircles must make the correct number of calls to drawDot
concentricCircles function must call drawDot the correct number of times.concentricCircles must make the correct function calls
concentricCircles function must call the drawDot function in the correct order, with the correct arguments, while the correct position and pen_color values are set upmulticolorCircles must make the correct number of calls to drawDot
multicolorCircles function must call drawDot the correct number of times.multicolorCircles must make the correct function calls
multicolorCircles function must call the drawDot function in the correct order, with the correct arguments, while the correct position and pen_color values are set upconcentricCircles must draw the correct image
concentricCircles is called must match the solution image.multicolorCircles must draw the correct image
multicolorCircles is called must match the solution image.concentricCircles with 4 parameters
def to define concentricCircles with 4 parametersfor loop
concentricCircles with 4 parameters, use a for loop in exactly one place.color
concentricCircles with 4 parameters, call color, pencolor, or penColor in at least one place.drawDot
concentricCircles with 4 parameters, call drawDot in at least one place.multicolorCircles with 3 parameters
def to define multicolorCircles with 3 parametersfor loop
multicolorCircles with 3 parameters, use a for loop in exactly one place.color
multicolorCircles with 3 parameters, call color, pencolor, or penColor in at least one place.drawDot
multicolorCircles with 3 parameters, call drawDot in at least one place.