Как завершить код с помощью модуля Python Turtle при получении ошибки терминатора [дубликат]Python

Программы на Python
Ответить
Anonymous
 Как завершить код с помощью модуля Python Turtle при получении ошибки терминатора [дубликат]

Сообщение Anonymous »

Здравствуйте, я новичок в Python и не знаю, как исправить ошибки терминатора. Я попробовал некоторые другие исправления, которые нашел на этом веб-сайте, но они в конечном итоге привели к другим ошибкам, например, к тому, что .!canvas является недопустимым именем команды.
Это код
import turtle as turtle

import time

import random

import keyboard

delay = 0.1

score = 0

high_score = 0

t=turtle

t=turtle.Screen()

t.title("Snake Xenzia [Press Esc to end game]")

t.bgcolor("skyblue")

t.setup(width=600, height=600)

t.tracer(0)

# Head of snake

head = turtle.Turtle()

head.shape("square")

head.color("white")

head.penup()

head.goto(0, 0)

head.direction = "Stop"

# Food

food = turtle.Turtle()

colors = random.choice(['red', 'green', 'blue'])

shapes = random.choice(['square', 'triangle', 'circle'])

food.speed(0)

food.shape(shapes)

food.color(colors)

food.penup()

food.goto(0, 100)

# Adding Segments

pen = turtle.Turtle()

pen.speed(0)

pen.shape("square")

pen.color("white")

pen.penup()

pen.hideturtle()

pen.goto(0, 250)

pen.write("Score : 0 High Score : 0", align="center",

font=("candara", 24, "bold"))

# Coding Moving

def wkey():

if head.direction != "down":

head.direction = "up"

def skey():

if head.direction != "up":

head.direction = "down"

def akey():

if head.direction != "right":

head.direction = "left"

def dkey():

if head.direction != "left":

head.direction = "right"

def move():

if head.direction == "up":

y = head.ycor()

head.sety(y+20)

if head.direction == "down":

y = head.ycor()

head.sety(y-20)

if head.direction == "left":

x = head.xcor()

head.setx(x-20)

if head.direction == "right":

x = head.xcor()

head.setx(x+20)

t.listen()

t.onkeypress(wkey, "w")

t.onkeypress(skey, "s")

t.onkeypress(akey, "a")

t.onkeypress(dkey, "d")

segments = []

# Main Gameplay

while True:

t.update()

if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
time.sleep(1)

head.goto(0, 0)

head.direction = "Stop"

colors = random.choice(['red', 'blue', 'green'])

shapes = random.choice(['square', 'circle'])

for segment in segments:

segment.goto(1000, 1000)

segments.clear()

score = 0

delay = 0.1

pen.clear()

pen.write("Score : {} High Score : {} ".format(

score, high_score), align="center", font=("candara", 24, "bold"))

if head.distance(food) < 20:

x = random.randint(-270, 270)

y = random.randint(-270, 270)

food.goto(x, y)

# Adding segment

new_segment = turtle.Turtle()

new_segment.speed(0)

new_segment.shape("square")

new_segment.color("orange") # tail colour

new_segment.penup()

segments.append(new_segment)

delay -= 0.001

score += 10

if score > high_score:

high_score = score

pen.clear()

pen.write("Score : {} High Score : {} ".format(

score, high_score), align="center", font=("candara", 24, "bold"))

# Collision

for index in range(len(segments)-1, 0, -1):

x = segments[index-1].xcor()

y = segments[index-1].ycor()

segments[index].goto(x, y)

if len(segments) > 0:

x = head.xcor()

y = head.ycor()

segments[0].goto(x, y)

move()

for segment in segments:

if segment.distance(head) < 20:
time.sleep(1)

head.goto(0, 0)

head.direction = "stop"

colors = random.choice(['red', 'blue', 'green'])

shapes = random.choice(['square', 'circle'])

for segment in segments:

segment.goto(1000, 1000)

segments.clear()

score = 0

delay = 0.1

pen.clear()

pen.write("Score : {} High Score : {} ".format(

score, high_score), align="center", font=("candara", 24, "bold"))

time.sleep(delay)

t.mainloop()

А это ошибка Терминатора, полученная при закрытии виджета.
---------------------------------------------------------------------------
Terminator Traceback (most recent call last)
in
182 while True:
183
--> 184 t.update()
185
186 if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:

~\anaconda3\lib\turtle.py in update(self)
1301 self._tracing = True
1302 for t in self.turtles():
-> 1303 t._update_data()
1304 t._drawturtle()
1305 self._tracing = tracing

~\anaconda3\lib\turtle.py in _update_data(self)
2644
2645 def _update_data(self):
-> 2646 self.screen._incrementudc()
2647 if self.screen._updatecounter != 0:
2648 return

~\anaconda3\lib\turtle.py in _incrementudc(self)
1290 if not TurtleScreen._RUNNING:
1291 TurtleScreen._RUNNING = True
-> 1292 raise Terminator
1293 if self._tracing > 0:
1294 self._updatecounter += 1

Terminator:


Подробнее здесь: https://stackoverflow.com/questions/729 ... ator-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»