【发布时间】:2013-09-24 21:18:09
【问题描述】:
如何进行碰撞?所以乌龟/蛇不会开箱即用。试图让它们停留在 (-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:我不擅长乌龟。以前没学过turtle,不错python学了一点。
【问题讨论】:
-
当它到达边缘时你想发生什么?顺便说一句,我见过的最酷的 Turtle 程序。
-
这是家庭作业吗?如果是这样,你真的应该在你的问题中澄清这一点。 Stackoverflow 可以给你指点,但要求更多是不道德和作弊的。在 turtle 中没有魔法命令可以帮助你做你想做的事……你必须自己检查每个递归步骤/迭代相对于盒子的位置。
-
@yasashiku 是的,这是一个硬件。另外,这怎么会是作弊,因为我需要帮助如何做到这一点。我不知道从哪里开始。
-
@Veedrac 谢谢。我想从墙上弹起来继续画画。
-
您需要澄清这是家庭作业,您只需要高级指针 - 现在的措辞方式意味着您希望有人为您解决它。这将是作弊。我建议编辑您的问题以强调这一点。
标签: python collision turtle-graphics