随机游走-任何方向

时间:2018-11-03 18:30:19

标签: python python-3.x random random-walk

我对此并不陌生,但是我正在尝试创建一个在乌龟随机游走中运行的程序,我不知道自己在做什么。这是我需要创建的程序{{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)

2 个答案:

答案 0 :(得分:1)

您的config/initializers/omniauth.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError) 函数可以完成许多事情;我认为它有点超出您的头了。每个步骤应该做什么:

  • 计算random_walk0之间的随机角度
  • 使用给定的公式计算2*math.pix
  • 致电y转到这些坐标

turtle.goto(x,y)中也有一些错字。

start

答案 1 :(得分:0)

因为这看起来像是一项家庭作业,所以我不想只是解决您的错误,而是为您提供正确解决方案的指针。我还将在扰流板后面隐藏提示...

  1. ,如果您使用以下命令运行random_walk():参数random_walk(1, 1),您会注意到步行的方向不会随机出现。使用某种形式的调试来找出原因

      

    您的go()函数期望一个角度,看看random.choice()产生了什么

  2. 如果您解决了问题编号1.您将看到乌龟根本不会再画一条随机线

      

    看起来角度不会每步都改变。在每一步之前找到解决方案以更新角度!

  3. 角度单位:找出setheading()所期望的单位:hint

  4. 您的要求提到了直线距离和行进距离的输出。听起来您需要某种形式的计数变量(一个或多个)。提示:如果您仔细阅读了Turtle文档,您可能会发现一个功能,可能会使此任务变得更容易

      

    阅读turtle.position()的文档。