Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как отсортировать список черепашек в python?

Гавриил Стробыкин Стробыкин Ученик (89), открыт 2 дня назад
при сортировке вылетает ошибка: TypeError: '<' not supported between instances of 'Turtle' and 'Turtle'.
вот код:

import turtle
from random import randint

HEIGHT = 300
WEIGHT = 400
turtle_speed = 1
temp = 0

turtle.bgcolor('Black')
snowFlakes = []
turtle.tracer(2)
turtle.speed(1)


for i in range(20):
flake = turtle.Turtle()

flake.penup()
flake.color('white')
flake.shape('circle')
flake.goto(randint(-WEIGHT, WEIGHT), HEIGHT)
flake.shapesize(randint(4, 15) / 10)
snowFlakes.append(flake)


#пытался сортировать тут

while True:
for flake in snowFlakes:
if flake.ycor() > -HEIGHT:
flake.goto(flake.xcor() + 0.5, flake.ycor() - 3)
elif flake.ycor() <= -HEIGHT:
flake.goto(randint(-WEIGHT, WEIGHT), HEIGHT)
flake.shapesize(randint(5, 20) / 10)
break

turtle.exitonclick()
1 ответ
Анатолий Зяблин Просветленный (32117) 2 дня назад
Вот так
 import turtle  
from random import randint

HEIGHT = 300
WEIGHT = 400

turtle.bgcolor('Black')
snowFlakes = []
turtle.tracer(2)
turtle.speed(1)

# Создаем черепашек
for i in range(20):
flake = turtle.Turtle()
flake.penup()
flake.color('white')
flake.shape('circle')
flake.goto(randint(-WEIGHT, WEIGHT), HEIGHT)
flake.shapesize(randint(4, 15) / 10)
snowFlakes.append(flake)

# Сортируем черепашек по их вертикальной позиции (Y)
snowFlakes.sort(key=lambda flake: flake.ycor())

while True:
for flake in snowFlakes:
if flake.ycor() > -HEIGHT:
flake.goto(flake.xcor() + 0.5, flake.ycor() - 3)
elif flake.ycor() <= -HEIGHT:
flake.goto(randint(-WEIGHT, WEIGHT), HEIGHT)
flake.shapesize(randint(5, 20) / 10)

turtle.exitonclick()
Гавриил Стробыкин СтробыкинУченик (89) 2 дня назад
Спасибо огромное!
Анатолий Зяблин Просветленный (32117) Гавриил Стробыкин Стробыкин, Не за что!
Похожие вопросы