from turtle import * tracer(0) start="X" dlugosc=4 kat=25 stos=[] slZam={'X':'F+[[X]-X]-F[-FX]+X','F':'FF'} iteracje=6 zolw='zolw' def LSBuduj(st,ile,sl): nowy="" for litera in st: if litera in st: if litera in sl.keys(): nowy+=sl[litera] else: nowy+=litera if ile>1: ile-=1 return LSBuduj(nowy,ile,sl) else: return nowy DoWykonania=LSBuduj(start,iteracje,slZam) Polecenia={} Polecenia['F']=[zolw+'.pd()',zolw+'.fd('+str(dlugosc)+')'] Polecenia['+']=[zolw+'.right('+str(kat)+')'] Polecenia['-']=[zolw+'.left('+str(kat)+')'] Polecenia['[']=['stos.append(('+zolw+'.xcor(),'+zolw+'.ycor(),'+zolw+'.heading()))'] Polecenia[']']=[zolw+'.pu()',zolw+'.setx(stos[len(stos)-1][0])', zolw+'.sety(stos[len(stos)-1][1])', zolw+'.setheading(stos[len(stos)-1][2])', 'stos.pop()'] print(Polecenia) zolw=Turtle() zolw.pu() zolw.goto(0,-300) zolw.color('green') zolw.pd() zolw.setheading(90) zolw.speed(0) for litera in DoWykonania: if litera in Polecenia.keys(): for rozkaz in Polecenia[litera]: eval(rozkaz) update()