解题思路:
同1096题Minesweeper;
给原矩阵添加一圈(padding)即可避免判断是否在边缘的问题。
注意事项:
参考代码:
counter = 1 while 1: row, col = map(int, input().split()) if row == col == 0: break padding = ['.' for _ in range(col + 2)] field, mine = [padding, padding], [[0 for _ in range(col + 1)] for _ in range(row + 1)] for i in range(1, row + 1): field.insert(i, ['.'] + list(input()) + ['.']) for j in range(1, row + 1): for k in range(1, col + 1): if field[j][k] == '*': mine[j][k] = '*' else: temp = [field[j + 1][k + 1], field[j - 1][k - 1], field[j + 1][k - 1], field[j - 1][k + 1], field[j + 1][k], field[j - 1][k], field[j][k - 1], field[j][k + 1] ] mine[j][k] = sum(1 for i in temp if i == '*') print(f"Field #{counter}:") counter += 1 for i in range(1, row + 1): print(*mine[i][1:], sep='') print()
0.0分
0 人评分