解题思路:
同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 人评分
ASCII帮了大忙浏览:748 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:518 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:512 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1242 |
WU-判定字符位置 (C++代码)浏览:1395 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:819 |
简单的a+b (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:629 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:579 |