Minesweeper but fun and modern

Slice Sweeper

Một phiên bản Minesweeper tươi vui theo tinh thần mini game marketing cho ngành F&B: nhanh, dễ vào trận, hợp mobile và đủ chắc để mở rộng cho campaign sau này.

Giải thích kiến trúc

Overall architecture

Game dùng mô hình 1 trang tĩnh: index.html chứa layout + phần giải thích, style.css lo toàn bộ UI responsive, còn script.js quản lý state, timer, input, persistence và render.

Data structure

Bàn cờ là mảng 2 chiều các ô. Mỗi ô giữ row, col, isMine, isRevealed, isFlaggedadjacentMines. DOM chỉ phản chiếu state này, nên logic dễ kiểm soát và mở rộng.

First click safe

Mìn chỉ được rải sau cú click đầu tiên. Thuật toán loại ô đầu tiên và toàn bộ hàng xóm của nó khỏi vùng đặt mìn, nhờ vậy người chơi không thể thua ngay từ nước mở màn.

Flood fill

Khi mở một ô có 0 mìn lân cận, game dùng hàng đợi để lan sang các ô trống kế bên, rồi tiếp tục mở lớp viền số xung quanh. Cách này tránh đệ quy sâu và chạy ổn trên bàn lớn.

Pause / resume

Trạng thái game có cờ isPaused. Khi pause, timer dừng, ô cờ không nhận input và một lớp phủ xuất hiện để báo game đang đứng yên. Resume chỉ việc tiếp tục đồng hồ từ mốc đang có.

Timer 0s
Mines left 10
Status Ready
Best time --

Left click để mở ô. Right click hoặc nhấn giữ trên điện thoại để cắm cờ. Click vào ô số đã mở để dùng chord.