Есть ли способ убрать черепаху с экрана?

У меня такой код:

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(), но это сбрасывает все, даже то, что вы, возможно, захотите сохранить.

Если бы я оказался в ситуации, когда я хочу удалить черепах вместо того, чтобы скрывать их, потому что повторение этого снова и снова займет слишком много памяти, я бы просто спрятал черепаху, и когда программе понадобится еще одна черепаха, вместо создания другой один, просто покажите спрятанную черепаху, чтобы использовать ее снова.

Другие вопросы по тегам