擅长:python、mysql、java
<p>第47行:</p>
<pre><code>def roomBA(key, life, door_open, roomBA, roomDA):
</code></pre>
<p>你在这里定义了一个名为roomBA的函数。在</p>
<p>第129行:</p>
^{pr2}$
<p>这里,你已经把roomBA改成了0号。在</p>
<p>因此,您定义的原始函数将丢失。你再也没有名字来称呼它了。在</p>
<p>第132行:</p>
<pre><code>roomCA(key, life, door_open, roomBA, roomDA)
</code></pre>
<p>这里,你正在呼叫功能室CA。除此之外,此函数向播放器请求方向,然后尝试调用相应的room函数。在</p>
<p>我输入了west,所以我们试图调用变量roomBA引用的函数(第17行)。但是,哦,不,它不再是一个函数。是0。因此,你错了。在</p>
<p>问题是函数名和变量名之间有很多冲突。当然,roomXX是代表游戏中每个房间的函数。然后,您就有了状态变量(目前也被命名为roomXX)。这些变量似乎是用来跟踪你之前是否进入过房间。由于函数和状态变量的名称相同,所以您正在做各种意想不到的事情。在</p>
<p>正如上面提到的,您可以删除第129行和第130行来运行代码;但是,您可能需要更好地理解基础知识。从这里开始:</p>
<p><a href="http://en.wikipedia.org/wiki/Scope_%28computer_science%29" rel="nofollow">http://en.wikipedia.org/wiki/Scope_%28computer_science%29</a></p>