Tải bản đầy đủ
CHƯƠNG 2. XÂY DỰNG ỨNG DỤNG GAME SUDOKU

CHƯƠNG 2. XÂY DỰNG ỨNG DỤNG GAME SUDOKU

Tải bản đầy đủ

tổng biên tập của báo này cho đăng Sudoku bên cạnh các ô chữ. Độc giả lập tức bị
cuốn hút và yêu cầu đăng thêm nữa. Chỉ trong vài tuần lễ, các tờ báo trên khắp nước
Anh đã thi nhau đăng Sudoku. Từ đó, Sudoku bắt đầu lan rộng sang Mỹ, Canada,
Úc, Pháp, Nam Phi và nhiều quốc gia khác.
- Sudoku là trò puzzle (đoán số hay chữ) phát triển nhanh nhất trên thế giới.
Nó hiện có hàng triệu người yêu thích. Nhiều nhân vật nổi tiếng ủng hộ nó. Và nó đã
có được một nhà vô địch thế giới. Chính quyền nhiều nước đã khuyến cáo Sudoku
như một công cụ rèn luyện trí lực và hạn chế sự phát triển của bệnh Alzheimer.
- Ngoài khuôn dạng chuẩn có kích thước 9x9 ô, chia làm 3x3 vùng, ngoài ra
còn có rất nhiều biến thể khác. Biến thể có kích thước lớn nhất được phổ biến là
100x100 ô.

Hình 2.1 Khuôn dạng game sudoku chuẩn
2.1.2 Luật chơi
- Luật chơi Sudoku cực kỳ đơn giản, nhưng đáp án đôi khi lại cực kỳ khó
giải. Do không cần dùng đến kiến thức số học hay tính toán, Sudoku thích ứng cho
mọi người. Vì vậy trẻ em cũng có cơ hội giải được Sudoku thành công như người
lớn. Trên thực tế, ở một số nước châu Âu, các em nhỏ đã chiến thắng người lớn
trong các cuộc thi đấu Sudoku.

41

- Trò chơi bắt đầu với một lưới Sudoku, trong đó một số ô đã cho sẵn các con
số đúng. Người chơi phải suy luận để tìm ra những con số trong các ô trống còn lại.
Các con số trong các ô được điền theo quy luật đơn giản sau:
 Các ô ở mỗi hàng (ngang) phải có đủ các số từ 1 đến 9, không cần theo
thứ tự.
 Các ô ở mỗi cột (dọc) phải có đủ các số từ 1 đến 9, không cần theo thứ
tự.
 Mỗi miền 3x3, được viền đậm, phải có đủ các số từ 1 đến 9.
2.2 Phân tích bài toán
2.2.1 Các yêu cầu
- Chương trình cần cho phép người chơi chọn các mức độ chơi phù hợp với
khả năng của mình. Với mỗi mức độ chơi, cho phép người dùng chọn một Sudoku
mong muốn.
- Cho phép người chơi tạm dừng Sudoku đang chơi và chuyển sang chơi
Sudoku khác. Tuy nhiên, nếu muốn, người chơi vẫn có thể chọn và chơi lại Sudoku
này. Cho phép người chơi gắn thêm các ghi chú là các con số vào một ô nào đó của
Sudoku
- Cho phép hiển thị các thông tin liên qua đến các Sudoku như: thời gian
chơi, ghi chú, thời gian hoàn thành…
- Cung cấp giao diện cho phép người chơi tùy chỉnh cách hiển thị của game,
hiển thị các thông tin giúp cho việc giải Sudoku dễ dàng hơn. Tạo giao diện thân
thiện, các hiệu ứng thu hút người chơi.

42

2.2.2 Đặc tả các chức năng của chương trình
- Select New Game: Chức năng này cho phép người chơi chọn một Sudoku.
Có 3 folder. Mỗi folder đại diện cho một mức độ chơi. Trong mỗi folder có một số
Sudoku, người dùng muốn chơi Sudoku nào sẽ chọn Sudoku đó. Khi tất cả các ô
trong Sudoku chơi đều được điền các giá trị hợp lệ (theo quy tắc của game) thì một
cửa sổ thông báo màn chơi đã kết thúc được hiện ra.
- Reset Game: Cho phép người chơi khôi phục lại trạng thái ban đầu của
Sudoku. Tất cả các giá trị đã được điền, các ghi chú đã gắn vào ô Sudoku sẽ bị xóa
hết.
- Set Checkpoint: Cho phép người chơi lưu lại trạng thái nào đó của Sudoku.
- Undo checkpoint: Người dùng có thể khôi phục lại trạng thái trước đó(đã
được lưu) và tiếp tục chơi, như vậy sẽ không mất thời gian để chơi lại từ đầu
-Add new game: Cho phép người chơi tự tạo ra một Sudoku của chính mình.
Sudoku này sẽ được lưu vào cơ sở dữ liệu với folder tương ứng.
- Select Input Method: Có 3 phương thức nhập, mỗi phương thức có cách
nhập số và ghi chú riêng, người chơi có thể chọn phươn thức nhập mong muốn.
- Game setting: Khi nhấn phím menu trên bàn phím của thiết bị, một menu
“setting” hiện lên cho phép người chơi tùy chọn một số chức năng như: tùy chỉnh
màu sắc, các thành phần hiển thị trên màn hình chơi game, bật/tắt nhạc nền…
- Add/Edit Description: Thêm ghi chú cho một Sudoku nào đó
- Delete game: Xóa một Sudoku khỏi danh sách các Sudoku hiện có
- Filter game: Hiển thị danh sách các Sudoku được lọc theo các trạng thái
nào đó (đang chơi, chưa chơi, đã hoàn thành)

43

2.2.3 Biều đồ UC
- Tác nhân của hệ thống: Hệ thống chỉ có một tác nhân là người chơi. Người
chơi có quyền chọn một Sudoku để chơi, cũng có thể thêm, sửa, xóa Sudoku đó.

Hình 2.2 Biểu đồ Use-Case của hệ thống.

44

2.2.4 Kịch bản cho các UC chính
2.2.4.1 UC Select new game
- Mục đích: Cho phép người chơi chọn một Sudoku để chơi.
- Luồng sự kiện chính:

Hành động của tác nhân

Phản ứng của hệ thống

1. Tại giao diện chính của game là
FolderList, người chơi chọn mức chơi.
2. Truy vấn cơ sở dữ liệu và hiển thị các
Sudoku ứng với mức chơi đã chọn ra giao
diện PuzzleList
3. Chọn một Sudoku bất kỳ
4. Truy vấn thông tin về Sudoku mà
người chơi đã chọn và hiển thị ra màn
hình chơi game là SudokuBoardView
5. Bắt đầu chơi game

45

Hình 2.3 Biểu đồ trình tự UC Select new game

46

Hình 2.4 Biểu đồ cộng tác cho UC Select new game
2.2.4.2 UC Set checkpoint
- Tạo điểm khôi phục cho game. Sau một số bước một số thay đổi trên
Sudoku, người chơi có thể khôi phục lại trạng thái này.
- Luồng sự kiện chính:
Hành động của tác nhân

Phản ứng của hệ thống

1. Tại giao diện chơi game là
SudokuBoardView, chọn “Menu”
2. Hiển thị các menu items cho người
chơi lựa chọn
3. Chọn menu “set checkpoint”
4. Lấy lệnh cuối cùng trong stack và đặt
nó là điểm checkpoint.

47

Hình 2.5 Biểu đồ trình tự UC Set CheckPoint

48

Hình 2.6 Biểu đồ cộng tác UC Set Checkpoint

49

2.2.4.3 UC Undo to checkpoint
- Mục đích: khôi phục lại trạng thái hiện tại của Sudoku trở về trạng thái tại
điểm checkpoint đã tạo trước đó.
- Luồng sự kiện chính:
Hành động của tác nhân

Phản ứng của hệ thống

1. Tại giao diện SudokuBoardView,
chọn “Menu”
2. Hiển thị các menu items cho người
chơi lựa chọn. Nếu có điểm checkpoint
trước đó, menu “undo to checkpoint”
được kích hoạt.
3. Chọn Undo to checkpoint
4. Khôi phục các lệnh đã thực hiện cho
đến khi gặp điểm lệnh được gắn là điểm
checkpoint, hiển thị lại giao diện.

50

Hình 2.7 Biểu đồ trình tự UC “Undo To Checkpoint”

51