Turtle函数未实现

2024-04-24 00:53:44 发布

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

在找到了我前面问题的解决方案后,我已经面对了几个小时的海龟函数的新问题。我对Python和海龟是新手,所以我不确定在哪里放置命令(即定义函数之前或之后)的语法,所以它们将在龟模块中实现,因为我正试图模拟随机龟赛跑,但它只会继续出现在黑龟中心的黑龟屏幕上。我在做什么阻止命令工作?到目前为止,这是我所拥有的,但我想至少知道我已经把第一部分弄好了,然后再进一步研究其余部分:

import turtle
import random

t = turtle.Turtle('turtle')
v = turtle.Turtle('turtle')
s = turtle.Screen()
s.exitonclick()

def setup(turtle1, turtle2, s):
    t = turtle1
    v = turtle2
    s.setworldcoordinates(0,0,50,50)
    t.setposition(1,25)
    t.up()
    v.setposition(1,25)
    v.up()
    t.color('red')
    v.color('red')
    s = turtle.Screen()
    s.exitonclick()


def newHeading(turtle, angleOfTipsiness):
    t.setheading(random.randrange(-angleOfTipsiness, angleOfTipsiness))
    v.setheading(random.randrange(-angleOfTipsiness, angleOfTipsiness))

我需要开始的图片看起来像这样:http://www.cs.ucsb.edu/~buoni/cs8/labs/lab02/start.JPG

谢谢你!在


Tags: 函数import命令defrandomscreen海龟up
1条回答
网友
1楼 · 发布于 2024-04-24 00:53:44

{{cdm>

# ...

def newHeading(turtle, angleOfTipsiness):
    t.setheading(random.randrange(-angleOfTipsiness, angleOfTipsiness))
    v.setheading(random.randrange(-angleOfTipsiness, angleOfTipsiness))

# after the end of the function definitions, add this:

if __name__ == '__main__':
    # example calls, replace with ones that make sense for what
    # you're trying to do:
    setup(t, v, s)
    newHeading(t, 10)

关于准则的几点意见:

  • 您的setup函数应该使用参数turtle1和{},而不是将它们分配给新的局部变量t和{}。(如果函数参数太长而不能反复输入,只需给它们较短的名称。)同样,newHeading根本不使用turtle参数。

  • tv是局部变量的混淆名称,因为已经有了具有相同名称的全局变量。

  • 全局变量应该被赋予长的描述性名称。应为局部变量保留短名称,这些变量使用频率更高,并且在更有限的上下文中使用。

通常,函数可以访问全局变量并将包含的对象用作全局资源,也可以将对象作为参数接受并以这种方式使用。对于某些情况,两者都是有效的选择(前者更简单,后者更可重用),但您不应将两者混合使用。如果某个对象是全局变量,则不要同时将其作为参数传递;如果它是参数,则使用它而不是全局变量,即使该全局变量是可用的。对同一对象混合使用这两种方法会使以后维护代码的人感到困惑。在

相关问题 更多 >