擅长:python、mysql、java
<p>我认为你应该重新考虑一下你的整体设计,因为这会让你遇到问题。这在很大程度上是理论上的,但是战斗时间越长,调用堆栈就越深,最终可能导致堆栈溢出(并且还会增加内存消耗;即使它继续正常运行)。你知道吗</p>
<p>相反,我建议您修改函数以返回布尔值,无论游戏是否应该继续。然后,只要两个函数都返回true,就可以循环,本质上意味着游戏继续:</p>
<pre><code>while playerturn() and monsterturn():
</code></pre>
<p>要使每次命中/攻击随机,您需要在使用<code>r</code>之前重新分配一个随机值:</p>
<pre><code>...
time.sleep(1)
r = randrange(1, 21)
if r > 14
...
</code></pre>