使用Python乌龟的2名选手比赛

时间:2018-03-05 16:00:00

标签: python

我曾尝试在Python 3中使用海龟创建一个基本的2人种族竞赛。我使用了一个示例游戏,其代码类似于我想要生成的this site

有没有人知道在运行if语句时检查按钮点击的方法,以检查变量的值是否已更改?

这是我的代码:

import turtle

window = turtle.Screen()
window.bgcolor('lightblue')
window.title('wacky racers')

turtle.speed(100)
turtle.penup()
turtle.goto(-140, 140)

# creates racetrack
for step in range(15):
    turtle.write(step, align='center')
    turtle.right(90)
    for num in range(8):
      turtle.penup()
      turtle.forward(10)
      turtle.pendown()
      turtle.forward(10)
    turtle.penup()
    turtle.backward(160)
    turtle.left(90)
    turtle.forward(20)


# Creates player 1
player1 = turtle.Turtle()

player1.color('red')
player1.shape('turtle')

player1.penup()
player1.goto(-160, 100)
player1.pendown()

# creates player 2
player2 = turtle.Turtle()

player2.color('blue')
player2.shape('turtle')

player2.penup()
player2.goto(-160, 0)
player2.pendown()

# button functions
def k1():
    player1.forward(10)

def k2():
    player2.forward(10)
def k3():
    window.bye()

#########     
turtle.listen()
turtle.onkey(k1, "Left")
turtle.onkey(k2, "Right")
turtle.onkey(k3, 'q')


while True:

    if player1.xcor() > 100:
        print("player 1 wins")
        window.bye()
    if player2.xcor() > 100:
        print("player 2 wins")
        window.bye()

此代码会在屏幕设置中使游戏崩溃。但是,如果我移除了while循环,游戏会运行,但在玩家1或玩家2通过x位置100后不会结束。

0 个答案:

没有答案