鱼C论坛

 找回密码
 立即注册
查看: 936|回复: 10

[已解决]零基础python第37讲动手题小乌龟吃鱼的游戏问题

[复制链接]
发表于 2020-3-8 16:48:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# 随机计算方向并移动到新的位置(x, y)
        new_x = self.x + r.choice([1, 2, -1, -2])
        new_y = self.y + r.choice([1, 2, -1, -2])

上面关于随机选择移动方向我有一点不理解。。r.choice()里面可选择的是一步或两步,但也有可能是比如说x轴移动为0,只在y轴移动2步,也就是说列表里应该有0,但是如果x和y的随机选项里都有0,又有可能随机处(0,0)这种情况,就相当于小乌龟没有移动。。

那这两句是不是考虑不太周到呢?还是我的思路哪里出了问题?
请大神指教~谢谢
最佳答案
2020-3-8 21:58:32
本帖最后由 一个账号 于 2020-3-8 22:02 编辑

# 随机计算方向并移动到新的位置(x, y)
    new_x = self.x + r.randint(-2, 2)
    new_y = self.y + r.randint(-2, 2) if new_x != 0 else self.y + r.choice([1, 2, -1, -2])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-8 17:12:05 | 显示全部楼层
x 和 y 是随机 -1, -2, 1, 2,所以不可能有 0 的情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 21:28:07 | 显示全部楼层
一个账号 发表于 2020-3-8 17:12
x 和 y 是随机 -1, -2, 1, 2,所以不可能有 0 的情况

我意思是应该有0的情况,比如x=0,y=2,表示x轴不懂,y轴上移动2步,或者x=1,y=0,表示y轴不懂,x轴上移动一步,随机移动应该有这样的情况才对。。。
但是现在只随机1,2,-1,-2就少了以上的情况。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 21:35:08 | 显示全部楼层
picesss 发表于 2020-3-8 21:28
我意思是应该有0的情况,比如x=0,y=2,表示x轴不懂,y轴上移动2步,或者x=1,y=0,表示y轴不懂,x轴上移 ...

对呀,你想要这种情况吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 21:45:11 | 显示全部楼层
一个账号 发表于 2020-3-8 21:35
对呀,你想要这种情况吗?

是的,应该要这种情况。。
不知道是我没听懂你的意思,还是你没懂我的意思
# 随机计算方向并移动到新的位置(x, y)
        new_x = self.x + r.choice([1, 2, -1, -2])
        new_y = self.y + r.choice([1, 2, -1, -2])
上面两句是我复制的参考答案中的语句
简单说就是我觉得参考答案这两句不够全面,我觉得应该有0的情况
但是直接在两个语句里面加入0又可能会出现不移动的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 21:46:03 | 显示全部楼层
picesss 发表于 2020-3-8 21:45
是的,应该要这种情况。。
不知道是我没听懂你的意思,还是你没懂我的意思
# 随机计算方向并移动到新的 ...


你的意思是想加入 0 但又不想出现 0, 0 的情况对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 21:54:17 | 显示全部楼层
一个账号 发表于 2020-3-8 21:46
你的意思是想加入 0 但又不想出现 0, 0 的情况对吧

对的对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 21:58:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 一个账号 于 2020-3-8 22:02 编辑

# 随机计算方向并移动到新的位置(x, y)
    new_x = self.x + r.randint(-2, 2)
    new_y = self.y + r.randint(-2, 2) if new_x != 0 else self.y + r.choice([1, 2, -1, -2])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 01:45:18 | 显示全部楼层
我感觉是不考虑这种情况吧,的确有当x或y为0的情况,不过可能是不考虑吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 10:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表