<p>我正在创建一个战舰游戏,这部分代码的方向是:
编写一个函数<code>addShips(grid, numShips)</code>,该函数循环直到将<code>numShips</code>ships添加到网格。对于循环中的每一次,它都应该使用<code>createShip()</code>创建一个ship,然后在给定的网格上为该ship创建<code>checkShip</code>。如果返回的<code>not_clear</code>列表为空,则可以放置装运</p>
<p>到目前为止,我的职能是:</p>
<pre><code>def addShips(grid, numShips):
createdShips = []
x = 0
while x < numShips:
createdShips.append(x)
x = x + 1
for ship in createdShips:
not_clear = checkShip(grid, ship)
if not not_clear:
for loc in ship:
grid[loc[0]][loc[1]] == 2
return grid
</code></pre>
<p>它运行正常,直到到达行<code>not_clear = checkShip(grid, ship)</code>,然后调用<code>checkShip(grid,ship)</code>:</p>
<pre><code>def checkShip(grid, ship):
arr = []
for loc in ship:
if grid[loc[0]][loc[1]] != 1:
arr.append(loc)
return arr
</code></pre>
<p>我得到:</p>
<pre><code>TypeError: 'int' object is not iterable
</code></pre>
<p>在<code>for loc in ship:</code>行上。函数<code>checkShip(grid, ship)</code>本身运行良好,但是当我必须从<code>addShips</code>调用它时,我会得到错误。我能怎么办?有人能帮我修复代码而不是仅仅解释错误的含义吗?(我理解错误,只是不知道如何修复,这是我的问题)</p>