首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在每次运行代码时为我的Turtle设置随机速度?

如何在每次运行代码时为我的Turtle设置随机速度?
EN

Stack Overflow用户
提问于 2017-02-11 07:56:17
回答 1查看 980关注 0票数 0

我正在尝试制作一个海龟赛车游戏(使用Python - Turtle),但我不知道如何在每次运行代码时为每只海龟设置一个随机速度(这样海龟x不会每次都赢)

代码语言:javascript
运行
复制
#define race fuction. Move each Turtle fd(random number between 2-10)  
red.pensize(10)
blue.pensize(10)
green.pensize(10)
red.speed(random)
blue.speed(random)
green.speed(random)
EN

回答 1

Stack Overflow用户

发布于 2017-02-11 12:55:43

turtle.speed()设置为任何值,包括random.randint()的结果,既不必要也不充分。这非常方便。下面是我的极简主义乌龟赛车代码。turtle.speed()方法用作存储海龟速度的位置,但如果您更改:

代码语言:javascript
运行
复制
turtle.forward(turtle.speed() + 1)

设置为固定值:

代码语言:javascript
运行
复制
turtle.forward(10)

您将看到,无论turtle.speed()的设置如何,这些海龟都以相同的速率移动。turtle.speed()值仅决定海龟绘制其更新的速度。最终,turtle.forward()参数中的差异控制着向前运动的量:

代码语言:javascript
运行
复制
from random import randint
from turtle import Turtle, Screen

TURTLE_SIZE = 20
MAXIMUM_SPEED = 10
DEFAULTS = {'shape':"turtle", 'visible': False}

screen = Screen()

starting_line = TURTLE_SIZE - screen.window_width()/2
finish_line = screen.window_width()/2 - TURTLE_SIZE - MAXIMUM_SPEED

turtles = dict(red=Turtle(**DEFAULTS), green=Turtle(**DEFAULTS), blue=Turtle(**DEFAULTS))

for i, (color, turtle) in enumerate(turtles.items()):
    turtle.color(color)
    turtle.penup()
    turtle.goto(starting_line, i * TURTLE_SIZE)
    turtle.speed(randint(0, MAXIMUM_SPEED))
    turtle.showturtle()

racing = True

while racing:
    for turtle in turtles.values():
        turtle.forward(turtle.speed() + 1)
        if turtle.xcor() >= finish_line:
            racing = False
            break

screen.exitonclick()

要让海龟比赛变得更加复杂,您可能需要使用ontimer()事件来允许它们更加独立地移动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42170569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档