【发布时间】:2018-02-05 22:38:09
【问题描述】:
我这样做是为了让乌龟画一个 200x200 的盒子,然后在里面反弹。但问题是它不会从顶部或左侧墙壁反弹。
t = turtle.Turtle()
s = turtle.Screen()
t.speed(1)
for i in range(4):
t.forward(200)
t.left(90)
t.penup()
t.goto(4, 4)
t.seth(r.randint(1, 89))
while 200 > t.xcor() > 0 and 200 > t.ycor() > 0:
if t.xcor() >= 197:
t.right(200)
if t.xcor() <= 3:
t.seth(r.randint(t.heading(),180))
if t.ycor() >= 197:
t.seth(r.randint(t.heading(), 180))
if t.ycor() <= 3:
t.left(200)
t.forward(1)
这段代码允许海龟从右边的墙壁和底部的墙壁上反弹。当它到达左侧或顶壁时,乌龟转向屏幕左侧并继续离开屏幕。我尝试了setHeading() 的随机数,还尝试使用left() 和right() 来控制乌龟撞墙时的行为。我在这里做错了什么?或者有什么更好的方法让乌龟远离墙壁?
解释不同:乌龟撞到左边和顶壁时不转身,为什么?我该如何解决?
【问题讨论】:
标签: python-3.x turtle-graphics