Как установить TeamCity под IIS? [закрытый]

Метод screen.onclick() не работает таким образом:

if screen.onclick == (ty == 0 and 0 < tx < 50):

Есть ли у вас документация по черепахе? Метод onclick() берет имя функции, вызываемой при щелчке, он ничего не возвращает. Кроме того, в одном из ваших turtle.pendown() вызовов отсутствуют скобки.

Наконец, пользователи не могут щелкнуть это точно:

if screen.onclick == (ty == 0 and ...):

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

from turtle import Screen, Turtle, mainloop

def dotLine():
    for _ in range(5):
        t.fillcolor("black")

        t.begin_fill()
        t.circle(4)
        t.end_fill()

        t.penup()
        t.forward(50)
        t.pendown()

def makeGrid():

    dotLine()

    t.penup()
    t.home()
    t.setheading(90)
    t.forward(50)
    t.setheading(0)

    dotLine()

    t.penup()
    t.home()
    t.setheading(90)
    t.forward(100)
    t.setheading(0)

    dotLine()

    t.penup()
    t.home()
    t.setheading(90)
    t.forward(150)
    t.setheading(0)

    dotLine()

    t.penup()
    t.home()
    t.setheading(90)
    t.forward(200)
    t.setheading(0)

    dotLine()

def onclick_handler(x, y):
    t.penup()

    # point 1
    if 0 < x < 50 and 0 < y < 50:
        t.goto(0, 0)
        t.pendown()
        t.forward(50)

    # point 2
    elif 50 < x < 100 and 0 < y < 50:
        t.goto(50, 0)
        t.pendown()
        t.forward(50)

    # point 3
    elif 100 < x < 150 and 0 < y < 50:
        t.goto(100, 0)
        t.pendown()
        t.forward(50)

    # point 4
    elif 150 < x < 200 and 0 < y < 50:
        t.goto(150, 0)
        t.pendown()
        t.forward(50)

    # point 5
    elif 200 < x < 250 and 0 < y < 50:
        t.goto(200, 0)
        t.pendown()
        t.forward(50)

screen = Screen()
t = Turtle(visible=False)
t.speed('fastest')

makeGrid()

screen.onclick(onclick_handler)

t.showturtle()

mainloop()

Если пользователь должен щелкнуть больше точек, чем в настоящее время включено в вашу программу, то я бы поступил по-другому. Я бы сделал каждую точку своей черепахой, а затем обработчик событий экрана onclick() опросил бы всех черепах с помощью метода turtle.distance(), чтобы найти две точки, наиболее близкие к нажатой точке. Тогда вам не нужно выполнять какую-либо расшифровку, поскольку черепахи справятся с этим.

10
задан omoto 13 May 2009 в 15:57
поделиться