Question
Problem 3 (50 XP): Modify the Asteroids game so that there are three different asteroids, a large, a medium and a small asteroid, that move
Problem 3 (50 XP): Modify the Asteroids game so that there are three different asteroids, a large, a medium and a small asteroid, that move in random directions at the beginning of the game. Do so by using three distinct images, creating 15 random goals (change maxGoals to 15), and making sure that there are 5 of each small, medium and large size asteroids by using three distinct image sizes. [Hint: Find .gif images files online and register them with the turtle)
Problem 4 (50 XP): Modify the Asteroids game so that the game ends after the playes loses 3 lives. Create a lives counter, and substract a life every time the players touches a boundary.
# Turtle Graphics Game import turtle import math import random import os # Set up screen wn = turtle.Screen() wn.bgcolor("black") wn.bgpic("bgpic.gif") wn.tracer(3) # Draw border mypen = turtle.Turtle() mypen.color("white") mypen.penup() mypen.setposition(-300, -300) mypen.pendown() mypen.pensize(3) for side in range(4): mypen.forward(600) mypen.left(90) mypen.hideturtle() # mypen can be reused... will be used to draw score on the screen # Create player turtle player = turtle.Turtle() player.color("blue") player.shape("triangle") player.penup() player.speed(0) # Create the score variable score = 0 # Create goals maxGoals = 10 goals = [] for count in range(maxGoals): goals.append(turtle.Turtle()) goals[count].color("red") goals[count].shape("turtle") goals[count].penup() goals[count].speed(0) goals[count].setposition(random.randint(-300, 300), random.randint(-300, 300)) # Set speed variable speed = 1 # Define functions def turnleft(): player.left(30) def turnright(): player.right(30) def increasespeed(): global speed speed += 1 def decreasespeed(): global speed if speed > 1: speed -= 1 def isCollision(t1, t2): d = math.sqrt(math.pow(t1.xcor() - t2.xcor(), 2) + math.pow(t1.ycor() - t2.ycor(), 2)) if d < 20: return True else: return False # Set keyboard bindings turtle.listen() turtle.onkey(turnleft, "Left") turtle.onkey(turnright, "Right") turtle.onkey(increasespeed, "Up") turtle.onkey(decreasespeed, "Down") while True: player.forward(speed) # Boundary Checking if player.xcor() > 300 or player.xcor() < -300: player.goto(0, 0) #player.right(180) os.system("afplay bounce.mp3&") # Boundary Checking if player.ycor() > 300 or player.ycor() < -300: player.goto(0, 0) #player.right(180) os.system("afplay bounce.mp3&") # Move the goal for count in range(maxGoals): goals[count].forward(3) # Boundary Checking if goals[count].xcor() > 290 or goals[count].xcor() < -290: goals[count].right(180) os.system("afplay bounce.mp3&") # Boundary Checking if goals[count].ycor() > 290 or goals[count].ycor() < -290: goals[count].right(180) os.system("afplay bounce.mp3&") # Collision checking if isCollision(player, goals[count]): goals[count].setposition(random.randint(-300, 300), random.randint(-300, 300)) goals[count].right(random.randint(0, 360)) os.system("afplay collision.mp3&") score += 1 # Draw the score on the screen mypen.undo() mypen.penup() mypen.hideturtle() mypen.setposition(-290, 310) scorestring = "Score: {0}".format(score) mypen.write(scorestring, False, align="left", font=("Arial", 14, "normal")) #delay = input("Press Enter to finish.")
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started