Trang chủ » Blog » Coding Dojo » Kata Minesweeper

Kata Minesweeper

bởi CodeGym | 09/12/2023 10:30 | Blog | Coding Dojo

Cấp độ của Kata: Dễ

Mô tả bài toán

Bạn đã từng chơi Minesweeper chưa? Đó là một game nhỏ rất thú vị được cung cấp kèm theo một hệ điều hành mà tôi cũng không còn nhớ nổi tên nữa. Mục tiêu của trò chơi là tìm ra tất cả các quả mìn trong một khu vực có kích thước M x N. Để giúp bạn, trò chơi cho hiển thị ở mỗi ô vuông số mìn ở các ô liền kề. Ví dụ, một khu vực có kích thước 4 × 4 chứa 2 quả mìn (mìn được biểu diễn bằng kí tự *) như sau:

               *...
               ....
               .*..
               ....

Nếu chúng ta muốn thể hiện các con số để gợi ý số mìn cho khu vực trên, chúng ta sẽ có kết quả sau:

               *100
               2210
               1*10
               1110

Bạn cần viết một chương trình sử dụng đầu vào như sau:

Đầu vào cho phép tùy chọn số lượng bãi mìn và kích thước vùng chứa mìn (bãi mìn).

Dòng đầu tiên nhập 2 số nguyên n và m (0<n, m<=100), tương ứng là chiều dài và chiều rộng (số hàng, số cột) của bãi mìn.

Căn cứ vào giá trị của n, nhập mỗi hàng (trong số n hàng) m ký tự biểu diễn cho mỗi ô của bãi mìn (n x m). Ô an toàn (không chứa mìn) nhập ký tự “.” (dấu chấm) và ô chứa mìn nhập vào kí tự “*” (dấu hoa thị).

Chương trình sẽ ngừng nhập dữ liệu đầu vào và không xử lý gì thêm nếu nhập giá trị 0 cho n và m.

Sau khi nhập dữ liệu xong chương trình sẽ cho kết quả đầu ra như sau.

Với mỗi bãi mìn, đầu tiên bạn sẽ in ra dòng thông báo như sau:

          Bãi mìn #x:

Trong đó x là số thứ tự của bãi mìn (bắt đầu từ 1, số lượng bãi mìn phụ thuộc dữ liệu đầu vào). Và n dòng tiếp theo các kí tự “.” được thay thế bằng số lượng mìn xung quanh ô đó. Các bãi mìn phân cách nhau bằng một dòng trắng.

Ví dụ:

Đầu vào:

              4 4
              *...
              ....
              .*..
              ....
              3 5
              **...
              .....
              .*...
              0 0

Đầu ra:

              Bãi mìn #1:
              *100
              2210
              1*10
              1110

              Bãi mìn #2:
              **100
              33200
              1*100

Nguồn Kata: http://codingdojo.org/kata/Minesweeper/

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

5 + 8 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM