Задача состоит в том, чтобы сделать то, что сделала бы библиотека черепах, но без библиотеки.
Это рисунок, который я получаю
Он должен проследить путь с помощью цикла for, но он не должен прибыть в то же место, с которого начинался, потому что угол поворота должен заставлять черепаху приземляться в разных местах каждый раз. Кстати, Дереча (справа), Изкиерда (слева), Арриба (вверх), Абахо (вниз)
from graphics import*
import math
ancho = 500
alto = 500
a=alto/2
b=ancho/2
win = GraphWin ("Estrella",ancho,alto)
origen=Point(ancho/2, alto/2)
dirTort="derecha"
def T(dir,dist,ang):
global dirTort,a,b
ang=ang*math.pi/180
for i in range (40):
if dir == "derecha":
if dirTort == "derecha":
dirTort = "abajo"
valx = math.cos(ang)
valy = math.sin(ang)
elif dirTort == "izquierda":
dirTort = "arriba"
valx = -math.cos(ang)
valy = -math.sin(ang)
elif dirTort == "arriba":
dirTort = "derecha"
valx = math.sin(ang)
valy = -math.cos(ang)
elif dirTort == "abajo":
dirTort = "izquierda"
valx = -math.sin(ang)
valy = math.cos(ang)
elif dir == "izquierda":
if dirTort == "derecha":
dirTort = "abajo"
valx = -math.cos(ang)
valy = -math.sin(ang)
elif dirTort == "izquierda":
dirTort = "arriba"
valx = -math.cos(ang)
valy = math.sin(ang)
elif dirTort == "arriba":
dirTort = "derecha"
valx = -math.sin(ang)
valy = -math.cos(ang)
elif dirTort == "abajo":
dirTort = "derecha"
valx = math.sin(ang)
valy = math.cos(ang)
p1 = Point(a, b)
coordx=a+dist*valx
coordy=b+dist*valy
p2=Point(coordx, coordy)
linea=Line(p1,p2)
linea.setFill("red")
linea.draw(win)
a=coordx
b=coordy
print(coordx,coordy)
T("derecha",200,10)
print(dirTort)
message = Text(Point(win.getWidth()/2,win.getHeight()/15),"Click para salir")
message.draw(win)
win.getMouse()