• Предмет: Информатика
  • Автор: svf121209
  • Вопрос задан 4 месяца назад

Змейка на python на черепашке дам 20 балов

Ответы

Ответ дал: lorikreshaet
1

import turtle

import random

# Установка окна игры

window = turtle.Screen()

window.title("Змейка")

window.bgcolor("black")

window.setup(width=600, height=600)

# Создание головы змеи

head = turtle.Turtle()

head.speed(0)

head.shape("square")

head.color("green")

head.penup()

head.goto(0, 0)

head.direction = "stop"

# Создание еды для змеи

food = turtle.Turtle()

food.speed(0)

food.shape("circle")

food.color("red")

food.penup()

food.goto(0, 100)

# Создание тела змеи

segments = []

# Функции для движения змеи

def go_up():

   if head.direction != "down":

       head.direction = "up"

def go_down():

   if head.direction != "up":

       head.direction = "down"

def go_left():

   if head.direction != "right":

       head.direction = "left"

def go_right():

   if head.direction != "left":

       head.direction = "right"

def move():

   if head.direction == "up":

       y = head.ycor()

       head.sety(y + 20)

   elif head.direction == "down":

       y = head.ycor()

       head.sety(y - 20)

   elif head.direction == "left":

       x = head.xcor()

       head.setx(x - 20)

   elif head.direction == "right":

       x = head.xcor()

       head.setx(x + 20)

# Связывание клавиш с функциями

window.listen()

window.onkeypress(go_up, "w")

window.onkeypress(go_down, "s")

window.onkeypress(go_left, "a")

window.onkeypress(go_right, "d")

# Основной игровой цикл

while True:

   window.update()

   # Проверка столкновения головы змеи с краями окна игры

   if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:

       head.goto(0, 0)

       head.direction = "stop"

       # Удаление тела змеи

       for segment in segments:

           segment.goto(1000, 1000)

       segments.clear()

   # Проверка столкновения головы змеи с едой

   if head.distance(food) < 20:

       # Перемещение еды на случайное место на экране

       x = random.randint(-290, 290)

       y = random.randint(-290, 290)

       food.goto(x, y)

       # Добавление сегмента тела змеи

       new_segment = turtle.Turtle()

       new_segment.speed(0)

       new_segment.shape("square")

       new_segment.color("grey")

       new_segment.penup()

       segments.append(new_segment)

   # Движение сегментов тела змеи

   for i in range(len(segments)-1, 0, -1):

       x = segments[i-1].xcor()

       y = segments[i-1].ycor()

       segments[i].goto(x, y


svf121209: Спасибо большое!
Вас заинтересует