我目前正在为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:
我该如何解决这个问题?如果我可以使用电路板找到电路板的尺寸,这个算法可以工作。
我很感激帮助。
答案 0 :(得分:0)
好吧,我正好在我必须编辑的那一行。新的生产线看起来像:
如果row + r&gt; = 0且col + c&gt; = 0且 row + r&lt; = len(board)-1且col + c&lt; = len(board [row]) - 1:强>
我无法让它发挥作用的原因是因为我没有添加-1的几个,给我一个错误。