Вы допускаете некоторые ошибки в изменении направления угла, когда вам нужно установить угол вправо + 90 , установленный угол влево + 90 или когда вам нужно установить угол влево+ 90 вы установили угол вправо + 90 в столкновение левой, правой и нижней стенок .
Иногда, когда черепаха меняет цвет в случайном порядке. Выбор (цвет) поворачиваетсяцвет в такой же как и есть.Я сделал лучший код для изменения цвета, чтобы вы всегда меняли цвет черепахи.
import turtle, random
t = turtle.Turtle()
t.speed(0)
t.pensize(5)
t.color("Black")
def Rectangle():
for i in range(2):
t.forward(400)
t.left(90)
t.forward(200)
t.left(90)
Rectangle()
t.penup()
t.goto(205,100)
t.color("Blue")
t.shape("circle")
A = random.randint(30,60)
B = random.randint(120,150)
C = random.randint(210,240)
D = random.randint(300,330)
Directions = [A, B, C, D]
direct = random.choice(Directions)
def tDirection(direct):
t.right(direct)
tDirection(direct)
speed = 2
angle = 90
while True:
color = ['red', 'blue', 'green', 'yellow', 'orange', "purple", "pink", "turquoise"]
t.forward(speed)
ty = t.ycor()
tx = t.xcor()
#print(ty, tx)
#breaking out bottom
if ty < 9:
Col = random.choice(color)
while Col == t.color()[0]:
Col = random.choice(color)
t.color(Col)
angleCurr = t.heading()
if(270>angleCurr>180):
t.right(angle)
else:
t.left(angle)
t.forward(2)
#breaking out top
if ty > 188:
Col = random.choice(color)
while Col == t.color()[0]:
Col = random.choice(color)
t.color(Col)
angleCurr = t.heading()
if(0<angleCurr<90):
t.right(angle)
else:
t.left(angle)
t.forward(2)
#breaking out left
if tx < 11:
Col = random.choice(color)
while Col == t.color()[0]:
Col = random.choice(color)
t.color(Col)
angleCurr = t.heading()
if(180<angleCurr<270):
t.left(angle)
else:
t.right(angle)
t.forward(2)
#breaking out right
if tx > 390:
Col = random.choice(color)
while Col == t.color()[0]:
Col = random.choice(color)
t.color(Col)
angleCurr = t.heading()
if(0<angleCurr<90):
t.left(angle)
else:
t.right(angle)
t.forward(speed)