Minesweeper là một trò chơi giải đố phổ biến, nơi bạn phải khám phá những viên gạch nào là "mỏ" mà không cần nhấp vào những viên gạch đó. Mỗi ô là một mỏ (đại diện bởi *
) hoặc một đầu mối, tức là một số từ 0 đến 8 đại diện cho bao nhiêu trong số 8 ô lân cận là mỏ. Nhiệm vụ của bạn hôm nay là lấy một tấm bảng chứa mìn và điền vào tất cả các manh mối. Ví dụ: nhìn vào bảng 5x4 sau, với 5 mỏ:
*
* *
*
*
Sau khi điền vào các đầu mối, bảng sẽ trông như thế này:
2*211
*33*1
12*32
0112*
Chi tiết
Bạn phải viết một chương trình đầy đủ hoặc một hàm có trong một lưới các ký tự chỉ chứa các khoảng trắng và dấu hoa thị và xuất ra một lưới khác trong đó mỗi không gian được thay thế bằng số lượng các mỏ liền kề (dấu hoa thị). Bất kỳ trong số này là các định dạng có thể chấp nhận cho lưới của bạn:
Một chuỗi có dòng mới trong đó
Danh sách 2D các ký tự / chuỗi ký tự đơn
Một danh sách các chuỗi
Bạn có thể giả sử lưới sẽ có ít nhất 1x1, mặc dù có thể nó là tất cả các mỏ hoặc tất cả các không gian.
Lưới đầu vào sẽ luôn được đệm với số lượng khoảng trống thích hợp. Như thường lệ, đây là môn đánh gôn , vì vậy các sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất bằng byte sẽ thắng!
IO mẫu
Để bạn có thể thấy khoảng trắng, tôi sẽ hiển thị tất cả IO mẫu với dấu ngoặc quanh nó.
Input:
[ * ]
[* ]
[ ]
[ ]
[ ** ]
[ * * ]
Output:
[1101*1]
[*10111]
[110000]
[012210]
[12**21]
[1*33*1]
Input:
[****]
[****]
Output:
[****]
[****]
Input:
[ ]
[ ]
[ ]
[ ]
Output:
[000]
[000]
[000]
[000]
Input:
[* ]
[** ]
[ ]
[ *]
Ouput:
[*310]
[**10]
[2221]
[001*]
Input:
[** ]
[* *]
[ * ]
[ ]
[* ]
[**** ]
Output:
[**1011]
[*4211*]
[12*111]
[121100]
[*43210]
[****10]
Input:
[ * ]
[ * ]
[ * ]
[** *** ]
[ *** ]
[ ]
[ ** ]
[ * * ]
[* ** ]
[ ** ]
Output:
[00001*1111]
[00002221*1]
[22102*4321]
[**102***31]
[221013***1]
[0000013542]
[0112111**1]
[12*2*12442]
[*212112**2]
[1100002**2]