Python3相邻地雷数量

时间:2015-11-22 23:51:43

标签: function python-3.x minesweeper

我目前正在为Python 3中的扫雷克隆创建一个函数,用于查找正方形周围的地雷数量。该函数包含3个参数。

第一个是名为" board"的2D列表,第二个是整数,用于点击正方形的行,第三个是被点击的正方形列的整数。这是我目前的职能:

def numMines(board, row, col):
mine_count = 0
    # For every every space around the square, including itself
    for r in range(-1, 2, 1):
        for c in range(-1, 2, 1):
            # If the square exist on the board
            if row+r >= 0 and col+c >= 0 and row+r <= 2 and col+c <=2:
                # If the square contains a mine
                if board[row+r][col+c][1] == "*":
                    #Raise the mine count
                    mine_count = mine_count + 1
# If the original square contains a mine
if board[row][col][1] == "*":
    # Lower the mine count by 1, because the square itself having a mine shouldn't be counted
    mine_count = mine_count - 1
return mine_count

此功能效果很好,但它仅适用于特定大小的电路板。要改变这种情况,我相信我必须修改这个if语句:

如果row + r&gt; = 0且col + c&gt; = 0且 row + r&lt; = 2且col + c&lt; = 2:

我该如何解决这个问题?如果我可以使用电路板找到电路板的尺寸,这个算法可以工作。

我很感激帮助。

1 个答案:

答案 0 :(得分:0)

好吧,我正好在我必须编辑的那一行。新的生产线看起来像:

如果row + r&gt; = 0且col + c&gt; = 0且 row + r&lt; = len(board)-1且col + c&lt; = len(board [row]) - 1:

我无法让它发挥作用的原因是因为我没有添加-1的几个,给我一个错误。