Python龟碰撞

辛格2013

我该如何碰撞?因此,乌龟/蛇不会开箱即用。试图使它们停留在(-200,-200)和(200,200)内。

from turtle import *
from random import *

def bounding_box():
    up()
    right(90)
    forward(200)
    down()
    left(90)
    forward(200)
    left(90)
    forward(400)
    left(90)
    forward(400)
    left(90)
    forward(400)
    left(90)
    forward(200)
    up()
    goto(0,0)
    down()

def drawSnakeRec(segments, length):
    if segments <= 0 or length <= 0:
        return 0
    else:
        color(random(), random(), random())
        forward(length)
        pensize(randint(1,10))
        left(randint(-30, 30))
        return length + drawSnakeRec(segments - 1, randint(1,20))

def drawSnakeIter(segments, length):
    TL = 0
    while segments > 0:
        color(random(), random(), random())
        pensize(randint(1,10))
        forward(length)
        left(randint(-30, 30))
        TL += length
        segments -=1
    return TL


def main():
    segments = int(input("Enter the segments between 0 and 500: "))

    bounding_box()

    hideturtle()
    speed('fast')

    if segments < 0 or segments > 500:
        print("Segments is out of range. Segment must be between 0 and 500 inclusive")
        input("Press enter to close")
    else:

        x = drawSnakeRec(segments, randint(1, 20))
        print("Recursive Snake's Length is:",x,"Units")
        input("Press Enter to go on Iterative Snake")
        up()
        goto(0,0)
        reset()
        bounding_box()
        y = drawSnakeIter(segments, randint(1,20))
        print("Iterative Snake's Length is:",y," Units")
        input("Press Enter to exit...")
        bye()
main()

有什么帮助吗?谢谢。因此,我正在尝试完成此操作。是的,这是我要完成的实验室作业。如果你们可以帮助我或提供我可以做的事情,那将是很棒的。PS:我对乌龟不好。我以前从未学习过乌龟,但是我还是学过一点点Python。

意外事故

在递归版本和迭代版本中,您都将转向随机方向并向前移动随机长度。如果要避免使用边界框,则这些数字需要知道边界框在其中。

根据您想要的行为种类,您可以做的事情很少。可能最简单的方法是检查新坐标是否在框外,如果是,则适当地改变航向。

如果希望它逐渐避开方框,则可以在转向或移动决策中考虑到最近边缘的距离。

无论哪种情况,turtle.pos()都会有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章