Python中文
首页
教程
问答
标签
搜索
登录
注册
乱走乌龟功能不做我想做的事
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我要写一个程序,让乌龟绕着屏幕旋转90度,随机选择左或右,直到它撞到墙上,180度转身,然后绕着屏幕走。当它撞击墙壁4次时,循环终止。我遇到的问题是,当它从墙上反弹时,它就会停止行走,循环显然已经终止,因为我可以通过单击它来关闭窗口(<code>wn.exitonclick</code>)。以下是完整的节目:</p> <pre><code>import turtle import random def isInScreen(w,t): leftBound = w.window_width() / -2 rightBound = w.window_width() / 2 bottomBound = w.window_height() / -2 topBound = w.window_height() / 2 turtlex = t.xcor() turtley = t.ycor() stillIn = True if turtlex < leftBound or turtlex > rightBound or turtley < bottomBound or turtley > topBound: stillIn = False return(stillIn) def randomWalk(t,w): counter = 0 while isInScreen(w,t) and counter < 4: coin = random.randrange(0,2) if coin == 0: t.left(90) else: t.right(90) t.forward(50) t.left(180) t.forward(50) counter = counter+1 wn = turtle.Screen() wn.bgcolor('lightcyan') steklovata = turtle.Turtle() steklovata.color('darkslategray') steklovata.shape('turtle') randomWalk(steklovata,wn) wn.exitonclick() </code></pre> <p>我很困惑它为什么会停下来,考虑到一旦乌龟反弹,它的x和y坐标满足isInScreen(w,t)的要求,从而返回行走状态。有什么想法吗?<br/><br/> <strong>编辑:</strong>接受了Sukrit的回答,因为它最容易与我已经编程的内容联系起来,并在其他方面给了我一些建议,但布莱恩的回答也非常有用,如果可能的话,我会接受这两个答案。非常感谢你们俩!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你的while循环是失败的原因,你知道。因此,您可以做的是使while循环只检查计数器,而不将isnscreen()作为while循环的一部分。现在为了检查你是否可以前进,你可以在跳跃前看,也就是说,在你当前的位置上加上50的值,看看你是否会在屏幕上,如果不前进,否则尽可能靠近,增加碰撞计数器,然后掉头。或者,Sukrit karla的答案可能更容易实现。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
1 回答
无法使用Django\u mssql\u后端迁移到外部hos
5 回答
无法使用Django&Python3.4连接到MySql
7 回答
无法使用Django+nginx上载媒体文件
10 回答
无法使用Django1.6导入名称模式
10 回答
无法使用Django1.7和mongodb登录管理站点
9 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
10 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
1 回答
无法使用Djangocron进行函数调用
5 回答
无法使用Djangofiler djang上载文件
8 回答
无法使用Djangokronos
8 回答
无法使用Djangomssql provid
5 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
1 回答
无法使用Djangomssq迁移Django数据库
7 回答
无法使用Djangonox创建用户
6 回答
无法使用Djangopyodb从Django查询SQL Server
5 回答
无法使用Djangopython3ldap连接到ldap
6 回答
无法使用Djangoredis连接到redis
1 回答
无法使用Django中的FK创建新表
8 回答