在pythontu中如何宣布优胜者

2024-09-30 03:24:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python模块“turtle”创建一个基本的turtle程序。我遇到的唯一问题是如何宣布获胜者。在

我将试着解释我的计划:我开始画一些垂直线和最后的“终点线”。然后我用了3个形状,用randint()把这些海龟向前移动,跑完比赛。代码如下:

from turtle import *
from random import randint

speed(0)
penup()
goto(-100,200)
for step in range(15):
    write(step, align='center')
    right(90)
    forward(10)
    pendown()
    forward(160)
    penup()
    backward(170)
    left(90)
    forward(20)

goto(200,250)
write("Finish Line", align='center')
pendown()
right(90)
forward(300)

vince = Turtle()
vince.color('red')
vince.shape('turtle')
vince.penup()
vince.goto(-120,160)
vince.pendown()

lawliet = Turtle()
lawliet.color('blue')
lawliet.shape('turtle')
lawliet.penup()
lawliet.goto(-120,130)
lawliet.pendown()

boyka = Turtle()
boyka.color('green')
boyka.shape('turtle')
boyka.penup()
boyka.goto(-120,100)
boyka.pendown()

for turn in range(100):
    speed(0)
    vince.forward(randint(1,5))
    lawliet.forward(randint(1,5))
    boyka.forward(randint(1, 5))

问题是:我要声明赢得比赛的形状。但当我在Turtle库中查找时,没有内置函数来执行此操作。有办法宣布这场比赛的获胜者吗?在


Tags: fromcolorforward形状randintshapeturtlegoto
1条回答
网友
1楼 · 发布于 2024-09-30 03:24:16

有很多方法可以做到这一点。您需要两个东西:终点线(200)的x坐标和海龟的x坐标,turtle.xcor()。下面是一个简单的解决方案,第一只海龟的重心在终点线以上,就变成了胜利的黄金:

from turtle import Screen, Turtle
from random import randint, choice

track = Turtle(visible=False)
track.speed('fastest')
track.penup()
track.goto(-100, 200)

for step in range(15):
    track.write(step, align='center')
    track.right(90)
    track.forward(10)
    track.pendown()
    track.forward(160)
    track.penup()
    track.backward(170)
    track.left(90)
    track.forward(20)

track.goto(200, 250)
track.write("Finish Line", align='center')
track.pendown()
track.right(90)
track.forward(300)

vince = Turtle('turtle')
vince.speed('fastest')
vince.color('red')
vince.penup()
vince.goto(-120, 160)
vince.pendown()

lawliet = Turtle('turtle')
lawliet.speed('fastest')
lawliet.color('blue')
lawliet.penup()
lawliet.goto(-120, 130)
lawliet.pendown()

boyka = Turtle('turtle')
boyka.speed('fastest')
boyka.color('green')
boyka.penup()
boyka.goto(-120, 100)
boyka.pendown()

screen = Screen()

while True:
    turtle = choice([vince, lawliet, boyka])
    turtle.forward(randint(1, 5))
    if turtle.xcor() > 200:
        break

turtle.color('gold')

screen.exitonclick()

相关问题 更多 >

    热门问题