Как сделать так, чтобы вся программа полностью остановилась после 5 попыток (кликов)

Как сделать так, чтобы вся программа полностью останавливалась после 5 попыток (щелчок) не имеет значения, находятся ли они на черепахе или нет, но программа после того, как вы написали, что у вас нет попыток, должна сломаться, и при нажатии не ставьте черную или красную точку, просто делайте ничего. Вот код:

from turtle import *
from random import *
import time
reset()


penup() 
hideturtle() 
speed(0)


bandymai = 0 #tries
taskai = 0   #points
info = Turtle() 
info.penup()
info.goto(-180, 160) 
info.color("Blue") 

def gaudom(x, y):
    goto(x, y)
    if distance(beglys.pos()) < 10:
        color('red') #hit color
        global taskai
        global bandymai
        taskai = taskai + 1
        info.clear()
        info.write(taskai, font = ("Arial", 20, "bold"))
        bandymai = bandymai + 1
     else:
        color('black') #miss color 
        dot(20)
        bandymai = bandymai + 1

screen = getscreen()
screen.onclick( gaudom )


beglys = Turtle()
beglys.color('green')
beglys.shape('square')


for n in range(100):
    x = randint(-200, 200) 
    y = randint(-200, 200) 
    beglys.penup()
    beglys.clear() 
    beglys.goto(x, y)
    time.sleep(1) 
    if taskai == 3:
        info.write('you win!!!', font = ("Arial", 80, "bold"))
        break
    elif bandymai == 5:
        info.write('you are out of trys', font = ("Arial", 50, "bold"))
        break
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
225
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Добавьте 2 строки в конце кода.

screen.onclick(None) #Do nothing when clicking the screen.

screen.mainloop()    #Must be last statement in a turtle graphics program.

Вместо того, чтобы накладывать пластырь на код, давайте разберем его на части и реконструируем так, чтобы он был совместим с событиями (т. е. события черепашьего таймера вместо time.sleep()). Мы также сделаем неявную черепаху по умолчанию явной, удалим несколько пустых операций и вообще настроим стиль:

from turtle import Screen, Turtle
from random import randint

bandymai = 0  # tries
taskai = 0  # points

def gaudom(x, y):
    global taskai, bandymai

    screen.onclick(None)  # disable handler inside handler

    turtle.goto(x, y)

    if turtle.distance(beglys.pos()) < 10:
        taskai += 1
        info.clear()
        info.write(taskai, font=('Arial', 20, 'bold'))
    else:
        turtle.color('black')  # miss color
        turtle.dot(20)

    bandymai += 1

    screen.onclick(gaudom)  # reenable handler

ticks = 100

def play():
    global ticks

    x = randint(-200, 200)
    y = randint(-200, 200)

    beglys.goto(x, y)

    if taskai == 3:
        screen.onclick(None)  # Do nothing when clicking the screen.
        info.write("You win!", font=('Arial', 80, 'bold'))
        return

    if bandymai == 5:
        screen.onclick(None)  # Do nothing when clicking the screen.
        info.write("You are out of trys.", font=('Arial', 50, 'bold'))
        return

    ticks -= 1
    if ticks:
        screen.ontimer(play, 1000)  # 1 second (1000 milliseconds)

screen = Screen()

turtle = Turtle()
turtle.hideturtle()
turtle.speed('fastest')
turtle.penup()

info = Turtle()
info.color('blue')
info.penup()
info.goto(-180, 160)

beglys = Turtle()
beglys.color('green')
beglys.shape('square')
beglys.penup()

screen.onclick(gaudom)

play()

screen.mainloop()  # Must be last statement in a turtle graphics program.

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