Есть ли способ убрать черепаху с экрана?
У меня такой код:
answer = "ABC"
flag.goto(-999, -999)
while (answer.lower != 'y' or answer.lower != 'n'):
print("You got the flag! Free play(y/n)?")
answer = input("")
if answer.lower == 'y':
pass
if answer.lower == 'n':
return None
Я пытаюсь удалить черепаху под названием flag
, добавив его в список и удалив с помощью del(testlist[0])
, но это не сработало. Результат:
You got the flag! Free play(y/n)?
y
You got the flag! Free play(y/n)?
n
You got the flag! Free play(y/n)?
2 ответа
Ваш вопрос сбивает с толку, поскольку заголовок и текст задают одно, в
то время как ваш пример кода и вывод показывают что-то совершенно другое.
Давайте ответим на этот вопрос:
Есть ли способ убрать черепаху с экрана?
В общем-то turtle.hideturtle()
буду делать то, что ты хочешь. Единственный способ избавиться от созданных черепах - этоscreen.clear()
который уничтожит их всех.
(Переменная turtle
выше должен быть установлен экземпляр Turtle()
и переменная screen
должен быть установлен в единственный экземпляр Screen()
.
Вы можете получить лучшее представление о видимости черепах из этой документации.
В принципе, вы можете использовать либо turtle.hideturtle()
или turtle.ht()
сделать черепаху невидимой.
Но это не означает, что черепаха удалена, и поэтому она все еще занимает память.
Вы можете позвонитьturtle.Screen.clear()
, но это сбрасывает все, даже то, что вы, возможно, захотите сохранить.
Если бы я оказался в ситуации, когда я хочу удалить черепах вместо того, чтобы скрывать их, потому что повторение этого снова и снова займет слишком много памяти, я бы просто спрятал черепаху, и когда программе понадобится еще одна черепаха, вместо создания другой один, просто покажите спрятанную черепаху, чтобы использовать ее снова.