Tải bản đầy đủ (.pdf) (120 trang)

Khóa luận tốt nghiệp Các bài toán về Sudoku

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.53 MB, 120 trang )

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 3




NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG
DẨN




















































































TpHCM, ngày … tháng …… năm ……
Giáo viên hƣớng dẫn
[Ký tên và ghi rõ họ tên]
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 4



NHẬN XÉT CỦA GIÁO VIÊN PHẢN
BIỆN




















































































TpHCM, ngày … tháng …… năm
….

Giáo viên phản
biện

[Ký tên và ghi rõ họ
tên]

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 5



LỜI CẢM
ƠN

Chúng em xin gửi lời cảm ơn chân thành đến tất cả các Thầy Cô đã giảng dạy
chúng em trong suốt thời gian qua. Cảm ơn Thầy Trần Quảng Hồng - ngƣời đã

hƣớng dẫn chúng em thực hiện đồ án này.
Nhân đây, chúng con cũng xin bày tỏ lòng biết ơn sâu sắc đến Ba Mẹ và gia
đình đã nuôi dạy chúng con nên ngƣời, và luôn là chỗ dựa tinh thần vững chắc, giúp
cho chúng con vƣợt qua mọi khó khăn, thử thách trong cuộc sống.
Bên cạnh đó, để hoàn thành đồ án này, chúng em cũng đã nhận đƣợc rất nhiều
sự giúp đỡ, những lời động viên quý báu của các bạn bè, các anh chị thân hữu, chúng
em xin hết lòng ghi ơn.
Tuy nhiên, do kiến thức còn hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhƣng
chắc rằng đồ án khó tránh khỏi thiếu sót. Chúng em rất mong nhận đƣợc sự thông cảm
và chỉ bảo tận tình của quý Thầy cô và các bạn.


Xin chân thành cảm
ơn.



Tp.HCM,
7/2009

Nhóm sinh viên thực
hiện

Lê Quang
Tâm

Lƣu Văn
Viế
t
Trƣờng CĐ Nguyễn Tất Thành

Các bài toán SUDOKU



Trang 6



ĐỀ CƢƠNG CHI
TIẾT




Tên Đề Tài: Các Bài Toán Về Sudoku
Giáo viên hƣớng dẫn: Trần Quản Hồng
Thời gian thực hiện: Từ ngày 9/3 đến ngày 26/7.
Sinh viên thực hiện:

Lƣu Văn Viết MSSV: 206205371

Lê Quang Tâm MSSV: 206205348
Loại đề tài: Tìm hiểu các bài toán Sudoku



Nội Dung Đề Tài: Các bài Toán về Soduku

Mô tả: Tìm hiểu thuật toán và xây dựng ứng dụng để giải quyết 1 số bài toán soduku
Yêu cầu: Sử dụng bộ công cụ Visual Studio 2005, ngôn ngữ sử dụng là Csharp

Phƣơng pháp thực hiện: Làm việc theo nhóm và tìm hiểu qua Internet
Kết quả đạt đƣợc: Hiểu đƣợc các bài toán về Sudoku và 1 ứng dụng


Kế Hoạch Thực Hiện

Tuần 1(14-21/03/2009): Tìm hiểu tổng quan về bài toán Soduku và thu thập tài
liệu
Tuần 2(22-29/03/2009):Xác định rõ bài toán và thu thập thêm tài liệu

Tuần 3(30-06/04/2009):Tìm hiểu về các thuật toán để giải quyết.

Tuần 4(07-14/04/2009):Xác định và lựa chọn thuật toán cho việc lập
trình
Tuần
5(15-22/04/2009):Thiết kế giao diện và thực hiện việc viết code giải thuật
Tuần 6(25-02/05/2009):Lập trình
Tuần 7(03-10/05/2009):Lập trình
Tuần 8(11-18/05/2009):Lập trình
Tuần 9(19-26/05/2009):Lập trình
Tuần 10(27-03/06/2009):Lập trình
Tuần 11(04-11/06/2009):Lập trình
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 7




Tuần 12(12-19/06/2009):Lập trình và sửa lỗi

Tuần 13(20-27/06/2009): Sửa lỗi và viết báo cáo

Tuần 14(28-05/07/2009):Sữa lỗi và hoàn thiện báo cáo

Tuần 15(06-13/07/2009):Nộp báo cáo và chƣơng trình


Xác nhận của GVHD
Ngày…13…tháng…03…năm…2009





SV Thực
hiện
Lƣu
Văn Viết
Lê Quang Tâm
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 8




MỤC
LỤC

NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG
DẨN
3
NHẬN XÉT CỦA GIÁO VIÊN PHẢN
BIỆN
4
LỜI CẢM
ƠN
5
ĐỀ CƢƠNG CHI
TIẾT
6
MỤC
LỤC
8
TÓM TẮT KHÓA LUẬN 13
1. Vấn đề nghiên cứu. 13
2.Phát biểu bài toán 13
2.1 Chức năng chính 13
2.2 Cách chơi 13
3.Phƣơng pháp tiếp cận giải quyết vấn đề. 14
4. Kết quả đạt đƣợc. 14
LỜI MỞ
ĐẦU
15
NỘI DUNG BÁO

CÁO
16
CHƢƠNG 1. LỊCH SỬ SUDOKU 17
1.1 Sudoku có lịch sử xa xƣa từ hàng ngàn năm. 17
CHƢƠNG 2. CÁC BIẾN THỂ PHỔ BIẾN CỦA SUDOKU 19
2.1. Dạng chuẩn: 19
2.2. Một số biến thể phổ biến nhƣ: 19
2.3. Biến thể với kích thƣớc lớn cũng khá phổ biến: 20
CHƢƠNG 3. LUẬT CHƠI SUDOKU 23
CHƢƠNG 4: MÔ HÌNH USECASE CHO SUDOKU 25
4.1 Sơ đồ UseCase 25
4.2 Danh Sách các Actor 25
4.3 Danh Sách các UseCase 26
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 9



4.4 Đặc tả UseCase 27
4.4.1 Đặc tả Use-case “New Game”: 27
4.4.2 Đặc tả Use-case “OpenGame” 28
4.4.3 Đặc tả Use-case “SolveGame” 28
4.4.4 Đặc tả Use-case “SaveGame ” 29
4.4.5 Đặc tả Use-case “Exit” 30
4.4.6 Đặc tả Use-case “Undo” 31
4.4.7 Đặc tả Use-case “Redo” 31

4.4.8 Đặc tả Use-case “Help” 32
4.4.9 Đặc tả Use-case “ChooseLevel” 33
5.1. Bƣớc 1: Áp dụng một vài suy luận cơ bản và thông thƣờng để xác định chắc chắn
một vài ô số cần tìm. 34
5.2. Bƣớc 2: Liệt kê những số có khả năng xuất hiện tại mỗi ô trong các miền con. 38
5.3. Bƣớc 3: Các suy luận và Phép loại bỏ để giải ô số SUDOKU. 40
5.3.1 Suy luận 1: Số duy nhất xuất hiện trong hàng, trong cột và trong một
miền con. 40
5.3.2 Suy luận 2: Số nằm trên một hàng và một miền. 43
5.3.3 Suy luận 3: Số nằm trên một cột và một miền con. 44
5.3.4 Suy luận 4: 2 ô số trong một cột chỉ chứa 2 số giống nhau. 45
5.3.5 Suy luận 5: 2 ô số trong một hàng chỉ chứa 2 số giống
nhau.
46
5.3.6 Suy luận 6: 2 ô số trong một miền con chỉ chứa 2 số giống nhau. 47
5.3.7 Suy luận 7: 3 ô số chứa một cặp số nằm trên một hàng 48
5.3.8 Suy luận 8: 3 ô số chứa một cặp số nằm trên một hàng thuộc một miền con
51
5.3.9 Suy luận 9: 3 ô số chứa một cặp số nằm trên một cột 53
5.3.10 Suy luận 10: 3 ô số chứa một cặp số nằm trên một cột thuộc một miền con
56
4.3.11 Suy luận 11: 3 ô số chứa một cặp số nằm trên một miền
con
58
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 10




5.3.12 Suy luận 12: Phép thử 60
CHƢƠNG 6. THUẬT GIẢI SUDOKU 66
6.1 Giới thiệu về thuật giải 66
6.1.1 Backtracking – Quay lui 66
6.1.2 Backtracking- Ý tƣởng 68
6.1.3 Backtracking- Nhận xét 68
6.1.4 Backtracking- Giải thuật tổng quát 68
6.1.5 Giải thuật tổng quát 69
6.1.6 Giải thuật tổng quát 69
CHƢƠNG 7. GIẢI THUẬT TRONG CHƢƠNG TRÌNH SUDOKU 71
7.1 Kỹ thuật cơ bản để giải Sudoku 71
7.1.1 Kỹ thuật khử (Elimination Technology) 71
7.1.2 Kịch bản Biệt Lệ 78
Invalid Puzze 78
Invalid Move 79
7.1.3 Triển khai giải thuật CRME bẳng chƣơng trình. 80
7.1.3.1 Triển khai thuật toán SetCell 80
7.1.3.1.1 Giới thiệu 80
7.1.3.1.2 Mã nguổn chƣơng trình Csharp 81
7.1.3.2 Thuật toán CalculatePossibleValues – Tính các giá trị có thể có cho các
cell 82
7.1.3.2.1 Giới thiệu 82
7.1.3.2.2 Mã nguồn bằng Csharp 84
7.1.3.3 Giải thuật CheckColumnsAndRows – Kiểm tra hàng và Cột 85
7.1.3.3.1 Giới thiệu 85
7.1.3.3.2 Mã nguồn bằng Csharp 86
7.1.3.4 Giải thuật SolvePuzze 86

7.1.3.4.1 Giới thiệu 86
7.1.3.4.2 Mã nguồn cho giải thuật 87
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 11



7.2 Kỹ thuật nâng cao trong việc giải bài toán Sudoku 88
7.2.1 Lone Rangers 88
7.2.1.1 Lone Rangers trong Minigrid 88
7.2.1.1.1 Triển khai giải thuật LookForLoneRangerinMinigrids 90
7.2.1.1.1.1 Thuật Giải LookForLoneRangerinMinigrids 90
7.2.1.1.1.2 Phần mã nguồn của giải thuật 92
7.2.1.2 Lone Ranges trong Row 93
7.2.1.2.1 Triển khai giải thuật LookForLoneRangerinRows 94
7.2.1.2.1.1 Giải thuật LookForLoneRangerinRows 94
7.2.1.2.1.2 Giải thuật 95
7.2.1.3 Lone Rangers trong Columns 96
7.2.1.3.1 Triển khai giải thuật LookForLoneRangerinColumns 96
7.2.1.3.1.1 Giải thuật LookForLoneRangerinColumns 96
7.2.1.3.1.2 Phần mã nguồn của giải thuật LookForLoneRangerinColumns 97
7.2.1.4 Tinh chỉnh lại Function SolvePuzze 98
7.2.1.4.1 Triển khai giải thuật- Tinh chỉnh thêm phần giải thuật SolvePuzze 99
7.2.1.4.1.1 Giải thuật SolvePuzze 99
7.3 Các kỹ thuật nâng cao trong việc giải bài toán Sudoku 100
7.3.2 Kỹ thuật tìm kiếm cặp đôi -Look For Twins 100

7.3.2.1 Triển khai giải thuật để tìm kiếm cặp đôi trong Minigrids 104
7.3.2.1.1 Giải thuật LookForTwinsinMinigrids(Tìm cặp sinh đôi trong
Minigrids) 105
7.3.2.1.2 Triển khai giải thuật tìm kiếm cặp đôi trong Rows 107
7.3.2.1 Giải thuật tìm cặp đôi trong Hàng. 107
7.3.2.1.3 Triển khai giải thuật tìm kiếm cặp đôi trong Cột 108
7.3.3 Kỹ thuật tìm kiếm cặp ba – Look For Triplets 110
7.3.3.1 Các biến thể của Triplets 111
7.3.3.2 Triển khai giải thuật tìm cặp 3 trong Minigrids 114
7.3.4 Tinh chỉnh lại phƣơng thức SolvePuzzle (đã giới thiệu ở phần mục lục 7.1.3.4)
116
7.3.5 Sử dụng Burte - Force Elimination 117
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 12



Kết luận: 122
Hƣớng phát triển: 122
Danh mục tài liệu tham khảo 122

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU




Trang 13



TÓM TẮT KHÓA LUẬN

1. Vấn đề nghiên cứu.

Xuất hiện ở Việt Nam khoảng giữa năm 2005, Sudoku không ồn ào, cuồng
nhiệt nhƣ hip hop, breakdance mà vẫn hút khách bởi nó không chỉ đơn thuần là một
trò chơi, mà còn là cách thức giải trí giúp rèn luyện trí não, tƣ duy lôgic và tính kiên
trì.


Ngoài sự hấp dẫn của những con số, kích thích tƣ duy, suy nghĩ logic, Sudoku
còn hấp dẫn giới trẻ vì một lý do nữa là có thể chơi đƣợc mọi lúc mọi nơi, trên xe
buýt, trong giờ ra chơi, thậm chí khi đi dã ngoại, du lịch. Trong khi giới học sinh
thƣờng giải Sudoku theo cách truyền thống, tức là trên báo hoặc sách thì các sinh viên
và những cƣ dân mạng lại lên Internet để chơi. Một số diễn đàn của học sinh cũng
xuất hiện Sudoku. Không chỉ học sinh mà thầy cô cũng "kết" game này.

2.Phát biểu bài toán
2.1 Chức năng chính
Newgame: Tạo một game sudoku mới , cho phép ngƣời chơi có thể chọn lựa
cấp độ để chơi game, có 4 cấp độ là: Easy, Medium, Difficult, Extremely Difficult.
OpenGame: Cho phép ngƣời chơi mở 1 file game(file text) đã tồn tại để tiếp tục
chơi hoặc giải.
SaveGame: Cho phép ngƣời chơi lƣu lại game đang chơi dở dang và sẽ đƣợc
chơi tiếp bất cứ khi nào ngƣời chơi muốn.
Undo: Cho phép ngƣời chơi quay trở lại ô sudoku vừa mới đi.

Redo : Quay trở lại ô vừa mới Undo.
SolveGame: Cho phép ngƣời chơi giải một game hiện hành.
Pause: Chức năng cho phép tạm ngƣng game đang chơi.
Help: Chức năng trợ giúp ngƣời chơi về cách chơi Sudoku.
ChooseLevel: Cho phép ngƣời chơi có thể chọn một cấp độ game để chơi.
2.2 Cách chơi

Luật chơi Sudoku thì không có gì là khó hiểu cả nhƣng để giải đƣợc những ô số
sudoku khó thì đó là cả một vấn đề mà chúng ta, những ngƣời đam mê trò chơi này rất
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 14



quan tâm. Luật chơi của nó đƣợc diễn giải nhƣ sau:
Sudoku bắt nguồn từ từ xứ sở hoa anh đào đầy thơ mộng, chữ Su có nghĩa trong
tiếng Nhật là Con Số, doku trong tiếng Nhật là độc nhất, đúng vậy Sudoku chính là
con số độc nhất và nó cũng nói lên đƣợc phần nào luật chơi.
Sudoku là một loại trò chơi logic và cách chơi là điền các con số từ 1 đến 9 vào
những ô trống sao cho:
Mỗi cột dọc
Mỗi hàng ngang
Mỗi phân vùng nhỏ (ô 3*3)
Có đủ các số từ 1 đến 9 mà không đƣợc lặp lại.

3.Phƣơng pháp tiếp cận giải quyết vấn đề.

Bài toán đƣợc giải quyết theo phƣơng pháp thiết kế lập trình hƣớng đối tƣợng
bao gồm các bƣớc sau:
- Xác định rõ bài toán.
- Tìm hiểu về các thuật toán để giải quyết.
- Xác định và lựa chọn thuật toán cho việc lập trình.
- Thiết kế giao diện và thực hiện việc viết code giải thuật.
- Giải trình các thuật giải.

4. Kết quả đạt đƣợc.
- Quyển báo cáo.
- Chƣơng trình giải các bài toán SUDOKU, với các thuật giải đƣợc tìm hiểu.

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 15



LỜI MỞ
ĐẦU




Trong mấy năm gần đây, một trò chơi về ô số gọi là Sudoku đã đƣợc phổ biến
mọi nơi. Ngƣời ta cho rằng đó là một puzzle đặc sắc của thế kỷ 21, vì thích hợp với
mọi lứa tuổi, từ các trẻ em đến các vị bô lão. Đủ loại trò giải trí liên hệ đƣợc bầy bán

trong các tiệm đồ chơi. Nhiều loại ô số cũng đƣợc đăng tải trên các báo hàng ngày, kể
cả tuần san, nguyệt san. Nếu đến một hiệu sách, nhƣ Barnes & Noble tại Mỹ, chúng ta
thấy có cả một khu đầy sách nói về Sudoku. Trên lý thuyết, có nhiều loại Sudoku để
mà lựa chọn, nên những sách này đều mô tả luật sắp xếp các con số và cách giải đáp.
Thƣờng là sách về Sudoku 9x9 dùng 9 con số đặt trong 81 ô vuông, có kèm theo từ
mấy trăm đến cả ngàn bài toán đố về ô số và lời giải. Thí dụ 1001 Sudoku, một sƣu
tập của Thunder's Mouth Press, in bởi Avalon Publishing Group, New York,
NY10011. Tuy nhiên, sách này in không lấy gì làm đẹp, bảng mục lục kém rõ ràng mà
sách lại không có đánh số trang.
Do là một sinh viên viết phần mềm nên khó tránh khỏi những sai sót rất mong

sự góp ý của các Thầy cô và các bạn.


Nhóm sinh viên thực
hiện.


Lê Quang
Tâm


Lƣu Văn
Viế
t
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU




Trang 16



NỘI DUNG BÁO
CÁO




1. Lịch sử ra đời của Sudoku
2. Các biến thể phổ biến của Sudoku
3. Luật chơi Sudoku.
4. Mô hình usecase cho chƣơng trình.
5. Một số thuật toán giải quyết Sudoku.
6. Thuật giải Sudoku.
7. Thiết kế ứng dụng cho bài toán Sudoku.

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 17



CHƢƠNG 1. LỊCH SỬ SUDOKU

1.1 Sudoku có lịch sử xa xƣa từ hàng ngàn năm.


Sudoku có lịch sử xa xƣa từ hàng ngàn năm.Trong một tài liệu của Ả rập vào
thế kỷ thứ 9, Sudoku có lẽ đƣợc bắt nguồn từ Trung Hoa và đƣợc các học giả ngƣời Ả
Rập gọi là wafq. Còn trong tiếng Nhật, Sudoku đƣợc tạm dịch là con số độc nhất (Su
là số, Doku là đơn độc). Sudoku từng đi qua các nền văn hóa cổ. Những ô số vuông
vắn ấy đƣợc dùng làm bùa để giúp phụ nữ dễ sinh đẻ. Nó đƣợc gọi tên là ô vuông
buduh. Món bùa này trở nên phổ biến đến mức các nhà văn Hồi giáo bắt đầu lập ra các
tổ hợp số phức tạp hơn sao cho không có con số nào lặp lại.
Abraham Ben ibn Ezra - một nhà triết học kiêm chiêm tinh học ngƣời Hispanic
(Tây Ban Nha - Bồ Đào Nha) gốc Do Thái đã đi khắp Tây Ban Nha, Ý và các nƣớc
khác ở châu Âu để giới thiệu với công chúng về “những ô số kỳ ảo”.
Vào năm 1225, Ahmed al-Buni đã có ý tƣởng tạo nên những ranh giới cho các
khối vuông nhằm biến nó thành trò chơi, mặc dù phƣơng pháp này đƣợc tin là có xuất
xứ từ Ba Tƣ. Trong nhiều năm, chỉ có giới toán học biết đến Hình vuông Latinh. Đến
thập kỷ 1970, nhà xuất bản Dell của Mỹ đã đƣa vào những tập sách đố, và đặt tên cho
nó là Vị trí con số (Number Place).
Đến năm 1776 nhà toán học kiêm vật lý học ngƣời Thuỵ Sĩ tên Leonhard Euler
bắt đầu nghiên cứu và phát triển các luật chơi mà ngày nay ta gọi là luật chơi Sudoku.





Hình 1. 1 Leonhard Euler

Năm 1901, một nhà toán học ngƣời Pháp tiếp tục công trình này và năm 1959,
hai ngƣời Mỹ tên là Bose và Shrikhande nối gót theo ông ta. Mãi cho đến năm 1986,
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU




Trang 18



trong một chuyến đi Mỹ, một nhà xuất bản Nhật Bản, Nikoli, đã khám phá ra các ô số.
Họ đặt tên cho nó là SuDoku và làm cho nó nhanh chóng trở thành một trò chơi phổ
biến ở Nhật Bản. Tại đây, tất cả các câu đố Sudoku đều đƣợc viết tay. Vào thời đó, ai
mà có câu đố đƣợc đăng trên một trong các tạp chí của Nikoli coi đó nhƣ một vinh dự
lớn.


Hơn 20 năm sau một thẩm phán ngƣời Hồng Kông gốc New Zealand tên là
Wayne Gould tình cờ phát hiện một cuốn sudoku trong một hiệu sách Nhật Bản. Ông
đâm nghiền trò chơi số cổ xƣa này. Năm 2004, nhân một chuyến thăm ngẫu nhiên báo
The Times, Gould đã thuyết phục 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ễ cuộc chạy đua bắt đầu. Tờ Mail tung ra bản Sudoku của riêng mình, và chả bao
lâu sau tất cả các nhật báo phát hành trên toàn nƣớc Anh đã kịp ăn theo, ngoại trừ tờ
chuyên về tài chính Financial Times. Ai nấy đều khẳng định câu đố của họ mới là hay
nhất. Chẳng hạn, tờ Guardian có lần chạy một câu đố Sudoku trên mỗi trang của phần
phụ san và tuyên bố họ là tờ báo duy nhất có các câu đố đƣợc viết tay trên núi Phú Sĩ.
Những ngày này, thử vào bất kỳ toa tàu điện ngầm ở London hay lên trên các xe buýt
hai tầng vào giờ cao điểm, bạn sẽ bắt gặp ít nhất một ngƣời đang chơi Sukodu. Từ đó,
Sudoku bắt đầu lan rộng sang Mỹ, Canada, Úc, Pháp, Nam Phi và nhiều quốc gia
khác.


Hình 1. 2 Wayne

Gould


Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 19



CHƢƠNG 2. CÁC BIẾN THỂ PHỔ BIẾN CỦA SUDOKU

2.1. Dạng chuẩn:
- Khuôn dạng chuẩn có kích thƣớc 9x9 ô, chia làm 3x3 vùng




Hình 2. 1 Ô Sudoku 9x9 dạng chuẩn

2.2. Một số biến thể phổ biến nhƣ:
- Kích thƣớc 4x4 ô chia làm 2x2 vùng







Hình 2. 2 Sudoku 4x4


- Kích thƣớc 6x6 ô chia làm 2x3 vùng



Hình 2. 3 Sudoku 6x6

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 20



- Kích thƣớc 5x5 ô chia vùng theo pentomino



Hình 2. 4 Sudoku 5x5


2.3. Biến thể với kích thƣớc lớn cũng khá phổ biến:
- Kích thƣớc 16x16 ô (Monster SuDoku)






Hình 2. 5 Sudoku 16x16

- Kích thƣớc 12x12 ô chia làm 4x3 vùng (Dodeka Sudoku)




Hình 2. 6 Sudoku 12x12


Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 21



- Kích thƣớc 25x25 ô (Giant Sudoku)




Hình 2. 7 Sudoku 25x25

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU




Trang 22





Một ngƣời Việt Nam là Phạm Văn Hải đã phát triển các biến thể 8x8 ô chia
vùng theo qui tắc (4x2)x(4x2). Đây là cách chia thành 4 vùng chính, mỗi vùng 16 ô.
Trong mỗi vùng chính lại chia thành 2 vùng 8x8 dựa vào màu nền của từng ô. Tùy
theo cách bố trí các ô khác màu này, sẽ phát sinh thêm một biến thể khác. Cách bố trí
đơn giản nhất là các ô khác màu nằm xen kẽ nhau – trông rất giống bàn cờ quốc tế.
Ba biến thể phát triển theo nguyên tắc này:



Hinh 2. 8.phiên bản của biến thể
8x8


Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 23




CHƢƠNG 3. LUẬT CHƠI SUDOKU

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.
Ví dụ:


Hình 3. 1 Quy định đánh giá trị hàng cột



Điền vào ô trống những số ( từ 1 – 9 ), sao cho :
- Các ô ở mỗi hàng ( ngang ) phải có đủ các số từ 1 – 9 ( không cần theo thứ
tự).

- Các ô ở mỗi cột ( dọc ) phải có đủ các số từ 1 – 9 ( không cần theo thứ tự ).

- Mỗi miền con ( 3x3 ) đƣợc viền đậm, phải có đủ các số từ 1 – 9.
Một số quy ƣớc để diễn giải trong phƣơng pháp giải SUDOKU
Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 24






Hình 3. 2 Quy ƣớc diễn dải ô số Sudoku

Ô số SUDOKU cổ điển 9x9
Một ô số SUDOKU cổ điển 9x9, đƣợc quy ƣớc có 9 miền con A, B, C, D, E, F,
G, H và I. Chia thành 9 hàng và 9 cột ( có thứ tự từ 1 – 9. Bảng 1 ).Trong đó: A ( 3x3):
gọi là miền con 3x3 tên A.


Hình 3. 3 Quy ƣớc diễn dải ô số Sudoku

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 25



CHƢƠNG 4: MÔ HÌNH USECASE CHO SUDOKU

4.1 Sơ đồ UseCase


Hình 4. 1 Sơ đồ UseCase







4.2 Danh Sách các Actor


STT
Tên Actor
Ý nghĩa/Ghi chú
1
User
Ngƣời chơi Sudoku



Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 26



4.3 Danh Sách các UseCase

STT
Tên UseCase

Ý nghĩa/Ghi chú
1
New Game
Tạo mới 1 Game

2
OpenGame
Mở 1 file đã tồn tại để tiếp tục chơi hoặc
giải.
3
SolveGame
Giải Game
4
Save
Lƣu một Game đang chơi vào 1 file

5
Exit
Thoát game đang chơi
6
Pause
Tạm ngƣng ván cờ đang chơi
7
Undo
Quay trở lại ô vừa điền
8
Redo
Quay trở lại ô game vừa Undo
9
Help

Trợ giúp về cách chơi sudoku
11
ChooseLevel
Chọn cấp độ chơi game

Trƣờng CĐ Nguyễn Tất Thành
Các bài toán SUDOKU



Trang 27



4.4 Đặc tả UseCase
4.4.1 Đặc tả Use-case “New Game”:
 Tóm tắt: Use-case này cho phép ngƣời chơi tạo 1 game mới.
 Dòng sự kiện
 Dòng sự kiện chính:Use-case bắt đầu khi actor muốn tạo
một game mới, actor ngƣời chơi sẽ vào menu New Game.
Hệ thống sẽ khởi tạo 1 game mới với cấp độ mà actor đã
chọn.
 Các dòng sự kiện khác :Không có
 Các yêu cầu đặc biệt:Không có.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Không
có.
 Trạng thái hệ thống sau khi thực hiện Use-case:
Hệ thống tạo mới một game cho action chơi ở trạng thái bắt đầu.
 Điểm mở rộng
Hệ thống sẽ cho phép action tuỳ chọn vào Use-case: Exit để thoát

khỏi phần mền, nếu ngƣời chơi không thích chơi nữa.
Nếu kết quả sau khi use-case Create New đƣợc thực hiện thành
công, thì use-case Save Game sẽ đƣợc thực hiện khi action muốn
lƣu lại ván cờ đang chơi.

×