Я вижу две проблемы: боуксинг между окном консоли и окном черепахи;не играет хорошо в мире событий черепахи.Мы можем решить обе проблемы, используя методы numinput()
и textinput()
черепахи Python 3 вместо input()
и добавив события таймера:
from turtle import Screen, Turtle
from random import choice, randint
WIDTH, HEIGHT = 640, 480
MINIMUM, MAXIMUM = 1, 10
TITLE = "Guess the number"
FONTS = ['times new roman', 'americana', 'verdana']
def result(status, comment):
turtle.goto(0, 40)
turtle.color("green")
turtle.write(status, align="center", font=(choice(FONTS), 30, "italic"))
turtle.goto(0, -40)
turtle.color("blue")
turtle.write(comment, align="center", font=(choice(FONTS), 30, "italic"))
def play():
turtle.clear()
number = randint(MINIMUM, MAXIMUM)
answer = screen.numinput(TITLE, "Please enter a number:", minval=MINIMUM, maxval=MAXIMUM)
if number == answer:
result("WINNER", "GREAT JOB")
else:
result("LOSER", "you're dumb as a rock")
answer = screen.textinput(TITLE, "Do you want to try again?")
screen.ontimer(play if answer in {'y', 'Y'} else screen.bye, 250)
screen = Screen()
screen.setup(WIDTH, HEIGHT)
screen.bgcolor("black")
screen.title(TITLE)
turtle = Turtle()
turtle.hideturtle()
turtle.penup()
play()
screen.mainloop() # returns upon screen.bye()
Посмотрите, дает ли это взаимодействие, которое вы ищетедля.