Untitled
unknown
plain_text
10 months ago
2.8 kB
14
Indexable
from turtle import *
from random import randint
class Sprite(Turtle):
def __init__(self, x, y, step=10, shape='circle', color='black'):
super().__init__()
self.penup()
self.speed(0)
self.goto(x, y)
self.color(color)
self.shape(shape)
self.step = step
self.points =0
def move_up(self):
self.goto(self.xcor(), self.ycor() + self.step)
def move_down(self):
self.goto(self.xcor(),self.ycor() -self.step)
def move_left(self):
self.goto(self.xcor() -self.step,self.ycor())
def move_right(self):
self.goto(self.xcor() +self.step,self.ycor())
def is_collide (self, t):
if self.distance(t.xcor(), t.ycor()) < 30 :
return True
else:
return False
def set_move(self, x_start, y_start, x_end, y_end):
self.x_start = x_start
self.y_start = y_start
self.x_end = x_end
self.y_end = y_end
self.goto(x_start, y_start)
self.setheading(self. towards (x_end, y_end))#напрямок
def make_step(self):
self.forward(self.step)#напрямок вже є
if self.distance(self.x_end,self.y_end) <self.step:#якщо відстань менша за півкроку
self.set_move(self.x_end,self.y_end,self.x_start,self.y_start)#міняємо напрям
player = Sprite(0, -100, color = "orange")
enemy1 = Sprite(-100, 20, shape = "square", color = "red")
enemy2 = Sprite(100, 50, shape = "square", color = "red")
point = Sprite(0, 160, shape = "triangle", color = "green" )
enemy1.set_move(-100, 20, 100, 20,)
enemy2.set_move(100, 50, -100, 50,)
def move_up(self):
self.goto(self.xcor(), self.ycor() + self.step)
def move_down(self):
self.goto(self.xcor(),self.ycor() -self.step)
def move_left(self):
self.goto(self.xcor() -self.step,self.ycor())
def move_right(self):
self.goto(self.xcor() +self.step,self.ycor())
scr = player.getscreen()
scr.onkey(player.move_up, "Up")
scr.onkey(player.move_left,'Left')
scr.onkey(player.move_right,'Right')
scr.onkey(player.move_down,'Down')
scr.listen()
point.score = 0
while point.score < 4:
enemy1.make_step()
enemy2.make_step()
if player.is_collide(enemy1) or player.is_collide(enemy2):
print("програли")
point.hideturtle()
break
if player.is_collide(point):
new_random_x = randint(-200, 200)
new_random_y = randint(-200, 200)
point.goto(new_random_x, new_random_y)
point.score = point.score + 1
print("score", point.score)
if point.score >= 4:
print("виграли")
enemy1.hideturtle()
enemy2.hideturtle()
Editor is loading...
Leave a Comment