Поднимите ручку, когда черепаха не находится в точке с координатами - PullRequest
3 голосов
/ 05 июля 2019

Моя программа рисует изображения, к которым уже прикреплены координаты. Я хочу, чтобы моя черепаха могла взять ручку, когда не в координате. Сейчас черепаха продолжает писать, прежде чем добраться до координаты.

код:

with open('output.txt', 'r') as f:
    data = ast.literal_eval(f.read())

tony = turtle.Turtle()

for z in data:
    position = tony.pos()
    tony.goto(z)

выход

1 enter image description here

Как видите, черепаха продолжает рисовать даже до того, как доберется до координаты.

Вот кое-что, что я думаю, может сработать, но я не уверен, как это реализовать.

for z in data:
     position = tony.pos()
     while position in z == False:
         tony.penup()

for z in data:
     position = tony.pos()
     while position in z == True:
        tony.pendown()
        print("True")

Ответы [ 2 ]

1 голос
/ 07 июля 2019

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

код:

tony = turtle.Turtle()
tony.color("white", "cyan")
tony.speed(5.5)

def on_canvas():
    position = tony.pos()
    if position in data:
        tony.pendown()
        print("This is a coordinate")
    else:
        tony.penup()
        print("This is not a coordinate")


for z in data:
    playground.ontimer(on_canvas, 1)
    tony.goto(z)

turtle.done()

enter image description here

0 голосов
/ 05 июля 2019

Возможно, попробуйте взять ручку перед тем, как двигаться, и опустите ее после:

with open('output.txt', 'r') as f:
    data = ast.literal_eval(f.read())

tony = turtle.Turtle()

for z in data:
    tony.penup()
    tony.goto(z)
    tony.pendown()
...