Study Guide

2.11.4 Dartboard CodeHS Answers

2.11.4 Dartboard CodeHS Answers

The most common answer is:

def gah():
for i in range(1):
radius = 25
circle(radius)
penup()
setposition(0,-25)
pendown()
circle(radius+25)
penup()
setposition(0,-50)
pendown()
circle(radius+50)
penup()
setposition (0,-75)
pendown()
circle(radius+75)
gah()

This code snippet for drawing a dartboard-like figure with concentric circles has the right idea but lacks some efficiencies and correct setup for using turtle graphics in Python. To improve and correct your code:

  1. Import the turtle module to ensure the graphics functions are available.
  2. Use a loop to draw the concentric circles instead of manually setting positions and radii.
  3. The for loop that iterates range(1) only executes once, which doesn’t utilize the loop effectively. Instead, you can directly perform the drawing operations or use a loop that iterates over the number of circles you want to draw.

Here’s a corrected and optimized version of your code for drawing a dartboard with four concentric circles:

import turtle

# Function to draw concentric circles to simulate a dartboard
def draw_dartboard():
    turtle.speed(0)  # Set drawing speed to the fastest
    num_circles = 4  # Number of concentric circles
    radius = 25  # Initial radius of the smallest circle
    
    for i in range(num_circles):
        turtle.penup()
        turtle.goto(0, -radius*(i+1))  # Move to the start position for each circle
        turtle.pendown()
        turtle.circle(radius*(i+1))  # Draw circle with increasing radius

draw_dartboard()

turtle.done()  # Keep the window open until manually closed

This version uses a loop to draw each circle, starting from the smallest at the center and increasing the radius by 25 units for each subsequent circle. The turtle is moved to the correct starting position for each circle before drawing, ensuring the circles are concentric. The turtle.done() function keeps the window open so you can see the final drawing.