picesss 发表于 2020-3-8 16:48:12

零基础python第37讲动手题小乌龟吃鱼的游戏问题

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

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

那这两句是不是考虑不太周到呢?还是我的思路哪里出了问题?
请大神指教~谢谢

一个账号 发表于 2020-3-8 17:12:05

x 和 y 是随机 -1, -2, 1, 2,所以不可能有 0 的情况

picesss 发表于 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就少了以上的情况。。

一个账号 发表于 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轴上移 ...

对呀,你想要这种情况吗?

picesss 发表于 2020-3-8 21:45:11

一个账号 发表于 2020-3-8 21:35
对呀,你想要这种情况吗?

是的,应该要这种情况。。
不知道是我没听懂你的意思,还是你没懂我的意思
# 随机计算方向并移动到新的位置(x, y)
      new_x = self.x + r.choice()
      new_y = self.y + r.choice()
上面两句是我复制的参考答案中的语句
简单说就是我觉得参考答案这两句不够全面,我觉得应该有0的情况
但是直接在两个语句里面加入0又可能会出现不移动的问题

一个账号 发表于 2020-3-8 21:46:03

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

你的意思是想加入 0 但又不想出现 0, 0 的情况对吧

picesss 发表于 2020-3-8 21:54:17

一个账号 发表于 2020-3-8 21:46
你的意思是想加入 0 但又不想出现 0, 0 的情况对吧

对的对的

一个账号 发表于 2020-3-8 21:58:32

本帖最后由 一个账号 于 2020-3-8 22:02 编辑

picesss 发表于 2020-3-8 21:54
对的对的

# 随机计算方向并移动到新的位置(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()

s1448179517 发表于 2020-4-14 01:45:18

我感觉是不考虑这种情况吧,的确有当x或y为0的情况,不过可能是不考虑吧
页: [1]
查看完整版本: 零基础python第37讲动手题小乌龟吃鱼的游戏问题