我对此并不陌生,但是我正在尝试创建一个在乌龟随机游走中运行的程序,我不知道自己在做什么。这是我需要创建的程序{{3 }},这就是我到目前为止的Requirements。我开始迷路了,想知道我是朝着正确的方向前进还是我需要报废并重新开始
谢谢
import turtle
import random
import math
def start():
myS = turtle.Screen()
myS.title("Random Walk")
border = 50
myWin.setworldcoordinates(-border, -border, border, border)
def go(heading, step_size):
turtle.setheading(heading)
turtle.forward(step_size)
def random_walk(step_size, steps):
angle = random.random() * 2 * math.pi
x = 0
y = 0
x = x + math.cos(angle)
y = y + math.sin(angle)
coord = (x, y)
for _ in range(steps):
go(random.choice(coord), step_size)
if __name__ == '__main__':
turtle.hideturtle()
turtle.speed('fastest')
random_walk(15, 1000)
答案 0 :(得分:1)
您的config/initializers/omniauth.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)
函数可以完成许多事情;我认为它有点超出您的头了。每个步骤应该做什么:
random_walk
和0
之间的随机角度2*math.pi
和x
y
转到这些坐标 turtle.goto(x,y)
中也有一些错字。
start
答案 1 :(得分:0)
因为这看起来像是一项家庭作业,所以我不想只是解决您的错误,而是为您提供正确解决方案的指针。我还将在扰流板后面隐藏提示...
,如果您使用以下命令运行random_walk()
:参数random_walk(1, 1)
,您会注意到步行的方向不会随机出现。使用某种形式的调试来找出原因
您的
go()
函数期望一个角度,看看random.choice()
产生了什么
如果您解决了问题编号1.您将看到乌龟根本不会再画一条随机线
看起来角度不会每步都改变。在每一步之前找到解决方案以更新角度!
角度单位:找出setheading()
所期望的单位:hint
您的要求提到了直线距离和行进距离的输出。听起来您需要某种形式的计数变量(一个或多个)。提示:如果您仔细阅读了Turtle文档,您可能会发现一个功能,可能会使此任务变得更容易
阅读
turtle.position()
的文档。