Untitled

 avatar
unknown
plain_text
a year ago
2.8 kB
15
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