擅长:python、mysql、java
<p>你会注意到你在<code>create_tunnel</code>中有一个打字错误:<code>caves[cave_from].append.cave(cave_to)</code>应该是<code>caves[cave_from].append(cave_to)</code></p>
<p>这从未导致错误这一事实表明您的<code>link_caves</code>出了问题,因为它是调用<code>create_tunnel</code>的函数。我相信您希望将最后两行移到<code>while</code>语句中:</p>
<pre><code>def link_caves():
""" Make sure that all of the caves are connected by two way tunnels """
while unvisited_caves != []:
this_cave = choose_cave(visited_caves)
next_cave = choose_cave(unvisited_caves)
create_tunnel(this_cave, next_cave)
visit_cave(next_cave)
</code></pre>
<p>事实上,没有一个洞穴被标记为已访问,这意味着未访问的洞穴列表从未缩小,因此<code>while</code>语句将永远运行。在</p>
<p>如果进行这两个更改,代码将运行:</p>
^{pr2}$