def solve_maze(sprite):
# Your code goes here
################################################
# This code sets up the maze and calls solve_maze.
codesters.Rectangle(0, 247, 500, 5, "blue")
codesters.Rectangle(-247, 0, 5, 500 - 5, "blue")
codesters.Rectangle(-225, 200, 50, 5, "blue")
codesters.Rectangle(-175, 200, 50, 5, "blue")
codesters.Rectangle(-125, 200, 50, 5, "blue")
codesters.Rectangle(-50, 225, 5, 50, "blue")
codesters.Rectangle(25, 200, 50, 5, "blue")
codesters.Rectangle(100, 225, 5, 50, "blue")
codesters.Rectangle(200, 225, 5, 50, "blue")
codesters.Rectangle(250, 225, 5, 50, "blue")
codesters.Rectangle(-200, 175, 5, 50, "blue")
codesters.Rectangle(-125, 150, 50, 5, "blue")
codesters.Rectangle(-50, 175, 5, 50, "blue")
codesters.Rectangle(-75, 150, 50, 5, "blue")
codesters.Rectangle(0, 175, 5, 50, "blue")
codesters.Rectangle(25, 150, 50, 5, "blue")
codesters.Rectangle(75, 150, 50, 5, "blue")
codesters.Rectangle(150, 175, 5, 50, "blue")
codesters.Rectangle(125, 150, 50, 5, "blue")
codesters.Rectangle(175, 150, 50, 5, "blue")
codesters.Rectangle(250, 175, 5, 50, "blue")
codesters.Rectangle(225, 150, 50, 5, "blue")
codesters.Rectangle(-150, 125, 5, 50, "blue")
codesters.Rectangle(-175, 100, 50, 5, "blue")
codesters.Rectangle(-125, 100, 50, 5, "blue")
codesters.Rectangle(-25, 100, 50, 5, "blue")
codesters.Rectangle(25, 100, 50, 5, "blue")
codesters.Rectangle(100, 125, 5, 50, "blue")
codesters.Rectangle(175, 100, 50, 5, "blue")
codesters.Rectangle(250, 125, 5, 50, "blue")
codesters.Rectangle(-200, 75, 5, 50, "blue")
codesters.Rectangle(-100, 75, 5, 50, "blue")
codesters.Rectangle(-50, 75, 5, 50, "blue")
codesters.Rectangle(-75, 50, 50, 5, "blue")
codesters.Rectangle(50, 75, 5, 50, "blue")
codesters.Rectangle(100, 75, 5, 50, "blue")
codesters.Rectangle(150, 75, 5, 50, "blue")
codesters.Rectangle(200, 75, 5, 50, "blue")
codesters.Rectangle(250, 75, 5, 50, "blue")
codesters.Rectangle(-225, 0, 50, 5, "blue")
codesters.Rectangle(-150, 25, 5, 50, "blue")
codesters.Rectangle(-175, 0, 50, 5, "blue")
codesters.Rectangle(-125, 0, 50, 5, "blue")
codesters.Rectangle(-50, 25, 5, 50, "blue")
codesters.Rectangle(0, 25, 5, 50, "blue")
codesters.Rectangle(25, 0, 50, 5, "blue")
codesters.Rectangle(100, 25, 5, 50, "blue")
codesters.Rectangle(150, 25, 5, 50, "blue")
codesters.Rectangle(200, 25, 5, 50, "blue")
codesters.Rectangle(250, 25, 5, 50, "blue")
codesters.Rectangle(-100, -25, 5, 50, "blue")
codesters.Rectangle(-125, -50, 50, 5, "blue")
codesters.Rectangle(-50, -25, 5, 50, "blue")
codesters.Rectangle(50, -25, 5, 50, "blue")
codesters.Rectangle(100, -25, 5, 50, "blue")
codesters.Rectangle(75, -50, 50, 5, "blue")
codesters.Rectangle(150, -25, 5, 50, "blue")
codesters.Rectangle(200, -25, 5, 50, "blue")
codesters.Rectangle(250, -25, 5, 50, "blue")
codesters.Rectangle(-200, -75, 5, 50, "blue")
codesters.Rectangle(-175, -100, 50, 5, "blue")
codesters.Rectangle(-125, -100, 50, 5, "blue")
codesters.Rectangle(-50, -75, 5, 50, "blue")
codesters.Rectangle(-75, -100, 50, 5, "blue")
codesters.Rectangle(0, -75, 5, 50, "blue")
codesters.Rectangle(25, -100, 50, 5, "blue")
codesters.Rectangle(75, -100, 50, 5, "blue")
codesters.Rectangle(125, -100, 50, 5, "blue")
codesters.Rectangle(200, -75, 5, 50, "blue")
codesters.Rectangle(175, -100, 50, 5, "blue")
codesters.Rectangle(250, -75, 5, 50, "blue")
codesters.Rectangle(-200, -125, 5, 50, "blue")
codesters.Rectangle(-100, -125, 5, 50, "blue")
codesters.Rectangle(-25, -150, 50, 5, "blue")
codesters.Rectangle(50, -125, 5, 50, "blue")
codesters.Rectangle(25, -150, 50, 5, "blue")
codesters.Rectangle(125, -150, 50, 5, "blue")
codesters.Rectangle(175, -150, 50, 5, "blue")
codesters.Rectangle(250, -125, 5, 50, "blue")
codesters.Rectangle(-225, -200, 50, 5, "blue")
codesters.Rectangle(-150, -175, 5, 50, "blue")
codesters.Rectangle(-175, -200, 50, 5, "blue")
codesters.Rectangle(-100, -175, 5, 50, "blue")
codesters.Rectangle(-75, -200, 50, 5, "blue")
codesters.Rectangle(0, -175, 5, 50, "blue")
codesters.Rectangle(-25, -200, 50, 5, "blue")
codesters.Rectangle(100, -175, 5, 50, "blue")
codesters.Rectangle(75, -200, 50, 5, "blue")
codesters.Rectangle(150, -175, 5, 50, "blue")
codesters.Rectangle(250, -175, 5, 50, "blue")
codesters.Rectangle(225, -200, 50, 5, "blue")
codesters.Rectangle(-225, -250, 50, 5, "blue")
codesters.Rectangle(-175, -250, 50, 5, "blue")
codesters.Rectangle(-125, -250, 50, 5, "blue")
codesters.Rectangle(-75, -250, 50, 5, "blue")
codesters.Rectangle(-25, -250, 50, 5, "blue")
codesters.Rectangle(50, -225, 5, 50, "blue")
codesters.Rectangle(25, -250, 50, 5, "blue")
codesters.Rectangle(75, -250, 50, 5, "blue")
codesters.Rectangle(125, -250, 50, 5, "blue")
codesters.Rectangle(175, -250, 50, 5, "blue")
codesters.Rectangle(225, -250, 50, 5, "blue")
sprite = codesters.Sprite("robot", -222, 225)
sprite.set_size(.3)
score = 50
goals = set()
def add_goal(name, x, y, size):
goal = codesters.Sprite(name, x, y)
goal.set_size(size)
goals.add(goal)
add_goal("candy", -225, -225, .3)
add_goal("present1", 225, 225, .3),
add_goal("treasurechest", 225, -225, .2)
def done():
codesters.Rectangle(0, -100, 200, 50, 'white')
codesters.Text("Score = %d" % score, 0, -100, 'blue')
def collision(sprite, hit_sprite):
global score
if hit_sprite.get_name() == "treasurechest":
codesters.Rectangle(0, 0, 250, 50, 'white')
codesters.Text("You Found the Treasure!", 0, 0, "green")
score += 100
done()
elif hit_sprite in goals:
score += 10
hit_sprite.hide()
else:
sprite.event_collision(lambda: None)
sprite.turn_left(270)
sprite.hide()
codesters.Rectangle(0, 0, 200, 50, 'white')
codesters.Text("You hit a wall", 0, 0, "red")
score += -30
done()
sprite.event_collision(collision)
class ScoreableSprite:
def __init__(self, sprite):
self._sprite = sprite
def move_right(self, n):
global score
score -= 1
self._sprite.move_right(n * 50)
def move_left(self, n):
global score
score -= 1
self._sprite.move_left(n * 50)
def move_up(self, n):
global score
score -= 1
self._sprite.move_up(n * 50)
def move_down(self, n):
global score
score -= 1
self._sprite.move_down(n * 50)
solve_maze(ScoreableSprite(sprite))
done()