Найти - Пользователи
Полная версия: Бесконечные циклы и turtle
Начало » Python для новичков » Бесконечные циклы и turtle
1
Alex_Kutsan
значит на досуге решил простенькую програмку написать, совсем простенькую. Чтоб можно было двигать этим тартоловским треугольничком и рисовать , там размер делать. Ну значит первый вариант его передвижения с помошью getch() и в бесконечном цикле
from msvcrt import getch
import turtle
turtle.up()
turtle.down()
turtle.speed(0.1)
q=0
flag2=0
n=1
COLOR = ["white","yellow","blue","green","red"]
def pip():
turtle.pen(fillcolor=COLOR[q], pencolor=COLOR[q+1], pensize=n)
if a == "w":
turtle.forward(10)
elif a== "s":
turtle.right(180)
elif a== "a":
turtle.left(20)
elif a== "d":
turtle.right(20)
elif a == "q":
turtle.up()
elif a == "e":
turtle.down()
elif a == "p":
turtle.goto(0,0)
else:
print "Error input"

while 1:
a = getch()
print "you press", a
pip()
if a == "c":
q=q+1
if q==4:
q=0
if a == "v":
flag2 = flag2+1
if flag2==3:
flag2=0
if flag2==0:
n=n
elif flag2==1:
n=n+1
elif flag2==2:
n=n-1
if n ==0:
n=1
Вобще код рабочий, но щяс я там что-то напартачил, но не в этом вопрос. Эта прога только для винды и консоли, и её окошко turtle в ней тормозит.
Я решил на линукс по другому поступить
вот 2 код
import turtle
n=1
a=0
def r():
turtle.right(30)
def f():
turtle.forward(30)
def l():
turtle.left(30)
def b():
turtle.right(180)
def midle():
turtle.goto(0,0)
def chc():
turtle.pen(pensize=n)
n = n+1
return n
turtle.onkey(f,"w")
turtle.onkey(r,"d")
turtle.onkey(l,"a")
turtle.onkey(b,"s")
turtle.onkey(midle,"p")
turtle.onkey(chc,"c")
turtle.listen()
input("")
Вот тут я в замешательстве. Хотел чтоб размер кисти увеличивался от нажатия клавиши “с” но когда заношу в функцию( как в примере) то выдаёт ошибку
“UnboundLocalError: local variable ‘n’ referenced before assignment”
а когда делаю цикл. то окошко turtle постоянно обновляется и становится неробочим, и незакрывающимся.
помогите , как сделать чтоб либо функция не выдавала ошибку, и принимала значение n и возвращяло его, либо чтоб цикл ожидал нажатия на клавишу, а только постом продолжался, и не обновлял каждый раз окошко turtle
Ferroman
Глобальные переменные нужно объявлять явно.
def chc():
global n
turtle.pen(pensize=n)
n = n+1
return n
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB