Запуск и остановка черепахи пробелом (моделирование комнаты)
Программа рисует макет стены. По моей задумке, она должна нарисовать границы стены, переместиться в центр и только при нажатии пробела заполнять стену рисунками, создавая дизайн. И она должна также остановливаться при нажатии пробела. Порблема в том, что при моём коде она выполняет все задачи, кроме остановки. Может быть есть какие-нибудь идеи? На картинке результат.
from turtle import *
from turtle import Screen
from random import randint
import random
seinalaius=float(input("Sisestage seina laius (500-1500): "))
seinapikkus=float(input("Sisestage seina pikkus (500-900): "))
värvipalett=input("Mis värvipaletti tahaksite kasutada? (Valik: mustvalge, roosa, punane, lilla, sinine, kollane, roheline, beež, oranž): ")
screen = Screen()
fail = open(värvipalett + '.txt', encoding='UTF-8')
värvid = []
for rida in fail:
rida = rida.strip()
värvid.append(rida)
up()
goto(-seinalaius / 2, -seinapikkus / 2)
down()
for i in range(2):
forward(seinalaius)
left(90)
forward(seinapikkus)
left(90)
up()
goto(0, 0)
down()
def current_state():
global moving
moving = False
penup()
def next_state():
global moving
pendown()
moving = True
move()
def space_bar():
global current_state, next_state
next_state()
current_state, next_state = next_state, current_state
def move():
if moving:
while True:
pöörded = randint(4, 8)
begin_fill()
color(random.choice(värvid))
for i in range(pöörded):
pikkus = randint(0, 150)
up()
forward(pikkus)
if not -seinalaius / 2 <= xcor() <= seinalaius / 2 or not -seinapikkus / 2 <= ycor() <= seinapikkus / 2:
backward(pikkus)
backward(pikkus)
down()
forward(pikkus)
lr = randint(1, 2)
if lr == 1:
left(90)
else:
right(90)
speed("fastest")
end_fill()
up()
down()
current_state()
screen.onkey(space_bar, "space")
screen.listen()
screen.mainloop()
