close
Content
您玩過《踩地雷》嗎?這是一款可愛的小遊戲,遊戲的目標是找到所有M×N地圖內的地雷。
為了幫助您,遊戲在一個正方形中顯示一個數字,告訴您該正方形附近有多少個地雷。
例如,假設下面的4×4的地圖內帶有2個地雷(以"*"字元表示)。
* | . | . | . |
. | . | . | . |
. | * | . | . |
. | . | . | . |
如果我們根據上述作法,將遊戲提示數字填入,則結果將為:
* | 1 | 0 | 0 |
2 | 2 | 1 | 0 |
1 | * | 1 | 0 |
1 | 1 | 1 | 0 |
當然,您可能已經注意到,每個正方形內的數字最多為8(因為最多有8個正方形相鄰)。
Input
輸入將包含多組測資。
每組測資第一行包含兩個整數n和m (0 < n, m ≤ 100),代表地圖大小。
如果n = m = 0代表輸入結束。
接下來的n行,每行m個字元,代表整張地圖。
每個安全方塊用"."字元表示,每個地雷方塊用"*"字元表示。
Output
對於每組測資。
輸出第一行為"Field #k:",k代表測資編號。
接下來輸出題示後的遊戲地圖。
每筆測資間請用空白行分隔。
Sample Input #1
4 4 *... .... .*.. .... 3 5 **... ..... .*... 0 0
Sample Output #1
Field #1: *100 2210 1*10 1110 Field #2: **100 33200 1*100
python:
num=0 while True: try: n,m=map(int,input().split()) if(n==0 and m==0):break arr=[[0]*(m+2)] num+=1 for _ in range(n): arr1=[0]+[x for x in input()[::1]]+[0] arr.append(arr1) arr.append([0]*(m+2)) #print(arr) arr4=[] for i in range(1,n+1): arr3=[] for j in range(1,m+1): count=0 if(arr[i][j]=='*'): count='*' arr3.append(count) continue if(arr[i+1][j]=='*'):count+=1 if(arr[i-1][j]=='*'):count+=1 if(arr[i][j+1]=='*'):count+=1 if(arr[i][j-1]=='*'):count+=1 if(arr[i+1][j+1]=='*'):count+=1 if(arr[i+1][j-1]=='*'):count+=1 if(arr[i-1][j-1]=='*'):count+=1 if(arr[i-1][j+1]=='*'):count+=1 arr3.append(count) arr4.append(arr3) print(f'Field #{num}:',end='\n') for i in arr4: print(*i,sep='') except: break
文章標籤
全站熱搜