Эта строка является проблемой:
a.xcor()=a.xcor()+50
, поскольку xcor()
используется для доступа к координате, а не к ее установке.Вы хотите setx()
:
from turtle import Screen, Turtle
wn = Screen()
a = Turtle()
b = Turtle()
def checking(x, y):
return x.xcor() == y.xcor() and x.ycor() == y.ycor()
# or better yet: return x.position() == y.position()
if checking(a, b):
a.setx(a.xcor() + 50)
Вот ваша следующая проблема - функция checking()
не будет работать в долгосрочной перспективе.Черепахи сканируют плоскость с плавающей точкой, и они часто не возвращаются в точное положение, которое они оставили, например, (0, 0)
против (0, 0.001)
.Чтобы справиться с этим, нам понадобится менее точное сравнение:
def checking(a, b):
return abs(a.xcor() - b.xcor()) < 1 > abs(a.ycor() - b.ycor())
или еще лучше:
def checking(a, b):
return a.distance(b) < 1