有些习惯,新手阶段不养好,以后就很难扭转了。建议以后,至少if和for,把圆括号、花括号和缩进写全。
一般游戏逻辑(即使这样的测试使用),也只是在按下空格的“瞬间”,获取“一次”物品,但在你的当前逻辑下,按下空格后xx的值变更了,无论是否在别的阶段里使用、丢弃、更改了对应格子的内容,这段代码执行时都在“不停”给对应格子刷新物品。这样说的如果不清楚,那么原来的代码更改一下格式可能会清楚一些:
更改格式后代码的9到20行,是无论是否刚刚按下空格(第3行的判断),都会尝试执行的。如果改成“只在按下空格时尝试刷新物品”的话,这些代码都要被第3行的判断影响,即第7行的花括号结束要移动到更靠下的地方(第21行),把这几行涵盖进去:
当然,按缩进逻辑,中间的部分要多缩进一级。