1. Trang chủ
  2. » Luận Văn - Báo Cáo

CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI

34 188 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ Sở Ngành KTPM Trò Chơi Sudoku Sử Dụng Thuật Toán Vết Cạn
Tác giả Trương Phúc Vĩnh
Người hướng dẫn Ths. Phan Huy Cường
Trường học Khoa Công Nghệ Thông Tin Và Truyền Thông
Chuyên ngành Công Nghệ Phần Mềm
Thể loại niên luận
Năm xuất bản 2021-2022
Định dạng
Số trang 34
Dung lượng 1,25 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (6)
    • I. MÔ TẢ BÀI TOÁN (6)
    • II. MỤC TIÊU CẦN ĐẠT ĐƯỢC (6)
    • III. HƯỚNG GIẢI QUYẾT (6)
    • IV. KẾ HOẠCH THỰC HIỆN (7)
  • CHƯƠNG 2. LÝ THUYẾT (8)
    • I. KHÁI NIỆM ĐƯỢC SỬ DỤNG (8)
      • 2.1.1 Trò chơi sudoku là gì? (8)
      • 2.1.2 Thuật toán vét cạn (8)
      • 2.1.3 Khái niệm JVM (8)
      • 2.1.4 Mô hình MVC (8)
    • II. KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI (9)
  • CHƯƠNG 3. ỨNG DỤNG (12)
    • I. PHÂN TÍCH YÊU CẦU BÀI TOÁN (12)
      • 3.1.1 Yêu cầu chức năng (12)
      • 3.1.2 Yêu cầu phi chức năng (15)
      • 3.1.3 Yêu cầu phần mềm (15)
    • II. XÂY DỰNG CẤU TRÚC DỮ LIỆU (15)
      • 3.2.1 Tổ chức dữ liệu cần thiết (15)
      • 3.2.2 Thiết kế giải thuật (19)
    • III. GIỚI THIỆU CHƯƠNG TRÌNH (23)
    • IV. QUY TRÌNH SỬ DỤNG (26)
  • CHƯƠNG 4. KẾT LUẬN ĐÁNH GIÁ (27)
    • I. KẾT QUẢ ĐẠT ĐƯỢC (27)
    • II. HẠN CHẾ (27)
    • III. HƯỚNG PHÁT TRIỂN (27)
  • PHỤ LỤC (28)
    • I. CÀI ĐẶT ỨNG DỤNG (28)
    • II. HƯỚNG DẪN SỬ DỤNG (28)
  • TÀI LIỆU THAM KHẢO (34)

Nội dung

Khoa CNTT KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BỘ MÔN CÔNG NGHỆ PHẦN MỀM NIÊN LUẬN CƠ SỞ NGÀNH KTPM TRÒ CHƠI SUDOKU SỬ DỤNG THUẬT TOÁN VÉT CẠN Đại học Cần Thơ i NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Khoa CNTTTT, Đại học Cần Thơ ii MỤC LỤC CHƯƠNG 1 TỔNG QUAN 1 I MÔ TẢ BÀI TOÁN 1 II MỤC TIÊU CẦN ĐẠT ĐƯỢC 1 III HƯỚNG GIẢI QUYẾT 1 IV KẾ.

TỔNG QUAN

MÔ TẢ BÀI TOÁN

Trong thời đại hiện nay, nhiều ứng dụng và trò chơi mới ra đời, nhưng Sudoku vẫn giữ được sức hút đặc biệt nhờ vào sự đơn giản và lôi cuốn của nó Trò chơi này yêu cầu người chơi có tư duy logic, kiên trì và khả năng tập trung cao độ.

Sudoku xuất hiện ở Việt Nam từ giữa năm 2005 và nhanh chóng trở thành trò chơi giải trí được yêu thích, đặc biệt trong giới trẻ Sự hấp dẫn của Sudoku không chỉ đến từ việc kích thích tư duy và suy nghĩ logic, mà còn vì tính linh hoạt khi có thể chơi ở bất kỳ đâu, từ xe buýt đến trong giờ giải lao hay khi đi du lịch Trước đây, người chơi thường sử dụng sách, vở hoặc báo chí để giải Sudoku, nhưng với sự phát triển của công nghệ, việc chơi trên máy tính trở nên dễ dàng và tiện lợi hơn Do đó, việc phát triển một ứng dụng trò chơi Sudoku trên máy tính là rất cần thiết Để xây dựng ứng dụng này, việc lựa chọn thuật toán phù hợp để tạo ra ô số và hỗ trợ giải đố là vô cùng quan trọng, trong đó thuật toán vét cạn được áp dụng để sinh ngẫu nhiên ô số và giải câu đố.

MỤC TIÊU CẦN ĐẠT ĐƯỢC

Mục tiêu của đề tài này là xây dựng một trò chơi Sudoku đơn giản, ứng dụng các kiến thức đã học vào thực tiễn Trò chơi sẽ có giao diện đồ họa thân thiện, cho phép người dùng giải ô số một cách thủ công và cung cấp tiện ích hỗ trợ giải Sudoku Ngoài ra, trò chơi sẽ bao gồm chức năng nhập số và tự sinh ô số cho bàn cờ Đặc biệt, thuật toán vét cạn sẽ được áp dụng để giải ô số, nâng cao tính hiệu quả của trò chơi.

HƯỚNG GIẢI QUYẾT

Sử dụng mảng hai chiều 9x9 để lưu trữ các ô số của bàn cờ Sudoku, quá trình tạo bàn cờ bắt đầu bằng cách chọn ngẫu nhiên các con số từ 1 đến 9 để điền vào từng ô số trong hàng và cột tương ứng Nếu số được chọn không thỏa mãn điều kiện, sẽ tiến hành lặp lại việc sinh số ngẫu nhiên Giao diện đồ họa người dùng được thiết kế bằng Java Swing, mang lại sự thân thiện và dễ sử dụng.

Khoa CNTT&TT, Đại học Cần Thơ 2

KẾ HOẠCH THỰC HIỆN

Để hoàn thành đề tài đúng hạn, việc lập kế hoạch cho từng công việc là rất cần thiết Dưới đây là bảng kế hoạch được thiết kế cho đề tài (Bảng 1.1).

Bảng 1.1: Kế hoạch thực hiện đề tài

STT Công việc thực hiện Thời gian thực hiện

1 Xác định yêu cầu, phân tích các yêu cầu cần thiết tìm kiếm tài liệu liên quan về trò chơi Sudoku Tuần 1 - 2

2 Củng cố kiến thức về thuật toán “vét cạn” và nghiên cứu cách vận dụng vào đề tài Tuần 3 - 4

3 Thiết kế giao diện, mô hình tổng thể về ứng dụng, và chức năng của ứng dụng Tuần 5 - 6

4 Lập trình về thuật toán của ứng dụng Tuần 7 – 11

5 Lập trình về giao diện đồ họa của ứng dụng Tuần 12 - 14

6 Kiểm thử ứng dụng và hoàn thiện báo cáo Tuần 15 - 18

Khoa CNTT&TT, Đại học Cần Thơ 3

LÝ THUYẾT

KHÁI NIỆM ĐƯỢC SỬ DỤNG

2.1.1 Trò chơi sudoku là gì?

Sudoku, ban đầu được gọi là Number Place, là một trò chơi sắp xếp số dựa trên logic tổ hợp Mục tiêu chính của trò chơi là điền các chữ số từ 1 đến 9 vào lưới 9×9 sao cho mỗi hàng, mỗi cột, và mỗi ô vuông 3×3 đều chứa đầy đủ các số mà không bị trùng lặp Người chơi phải hoàn thành bảng Sudoku bằng cách điền các ô trống, đảm bảo rằng mỗi số chỉ xuất hiện một lần trong mỗi hàng, cột và ô vuông 3×3.

Thuật toán “vét cạn” là một kỹ thuật quan trọng trong phương pháp quay lui (backtracking), trong đó quá trình phân tích diễn ra theo chiều sâu và quay lại khi cần thiết Kỹ thuật này tiếp tục tìm kiếm cho đến khi đạt được điểm dừng, tức là khi tìm ra lời giải hoặc xác định rằng không thể tiếp tục phân tích theo hướng hiện tại Đặc biệt, thuật toán “vét cạn” không bao giờ dừng lại mà luôn khám phá tất cả các khả năng cho đến khi không còn hướng đi nào khả thi, từ đó đảm bảo tìm ra lời giải chính xác nhất.

JVM (Java Virtual Machine) là một máy ảo Java có chức năng chuyển đổi mã byte code (.class) thành mã máy tương ứng (.exe) để thực thi trên nhiều hệ điều hành và kiến trúc CPU khác nhau Nó chứa các tập lệnh logic giúp xác định hoạt động của máy tính, được coi như một hệ điều hành thu nhỏ.

Mô hình MVC là một mẫu thiết kế giúp tách biệt logic ứng dụng khỏi giao diện người dùng, chia ứng dụng thành ba phần tương tác: Model, View và Controller Mỗi thành phần đảm nhiệm một vai trò riêng, giúp quản lý và tổ chức mã nguồn hiệu quả hơn.

Hình 2.1: Minh họa chu trình thực hiện của chương trình Java

Khoa CNTT&TT, Đại học Cần Thơ được tổ chức thành ba phần riêng biệt và độc lập, nhằm nâng cao hiệu quả quản lý, phát triển và bảo trì.

• Model: quản lý, xử lý dữ liệu

• View: giao diện, xác định cách trình bày của ứng dụng

• Controller: quản lý tương tác giữa Model và View.

KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI

Dựa trên những kiến thức đã học về thuật toán “vét cạn” để áp dụng vào việc giải một câu đố bàn cờ Sudoku cụ thể như sau:

Cần điền vào tất cả các ô trống các giá trị từ 1 đến 9 và thỏa cả ba điều kiện:

1) Không trùng với số đã có trong hàng

2) Không trùng với số đã có trong cột

3) Không trùng với lưới con 3x3 trong bàn cờ 9x9

Phương pháp giải bài toán này dựa trên thuật toán "vét cạn", trong đó ta sẽ kiểm tra từng ô số trên bàn cờ Nếu ô đã có giá trị, ta bỏ qua; nếu ô trống, ta sẽ chọn số nhỏ nhất từ 1 đến 9 để điền vào ô đó Số được chọn phải thỏa mãn ba điều kiện của đề bài Nếu không thỏa, ta tăng giá trị số lên và kiểm tra lại Quá trình này tiếp tục cho đến khi tìm được số thỏa mãn hoặc đạt đến số 9 Nếu vẫn không thỏa mãn, ta quay lại ô trước và tiếp tục tăng giá trị Quy trình này lặp lại cho đến khi tất cả các ô đều được điền giá trị hợp lệ.

Khoa CNTT&TT, Đại học Cần Thơ 5

Trong ma trận, ta ký hiệu ô tại hàng i và cột j bằng matrix[i][j], với i và j có giá trị từ 0 đến 8 Giá trị k được chọn để điền vào ô trống nằm trong khoảng từ 1 đến 9.

• K=1 => Thỏa điều kiện => Duyệt ô trống kế tiếp

• K=6 => Thỏa điều kiện => Duyệt ô trống kế tiếp

• K=9 => Không thỏa điều kiện => Quay lui

• K=7 => Thỏa điều kiện => Duyệt ô trống kế tiếp

• K=6 => Thỏa điều kiện => Duyệt ô trống kế tiếp

Khoa CNTT&TT, Đại học Cần Thơ 6

• K=6 => Thỏa điều kiện => Duyệt ô trống kế tiếp

• K=8 => Thỏa điều kiện => Duyệt ô trống kế tiếp

• K=4 => Thỏa điều kiện => Duyệt ô trống kế tiếp

=> Tất cả các ô đều đã được điền các giá trị thỏa mãn điều kiện

=> Kết thúc quá trình giải câu đố Sudoku, bàn cờ Sudoku sau khi giải:

Khoa CNTT&TT, Đại học Cần Thơ 7

ỨNG DỤNG

PHÂN TÍCH YÊU CẦU BÀI TOÁN

3.1.1 Yêu cầu chức năng Để đáp ứng mục đích giải trí của người dùng, ứng dụng được xây dựng có các chức năng quan trọng để hỗ trợ cho người dùng trong quá trình sử dụng Các chức năng này sẽ góp phần đem lại những sự trải nghiệm thú vị cho người chơi Dưới đây là các chức năng của ứng dụng được thể hiện trong sơ đồ usecase (Hình 3.1)

Hình 3.1: Sơ đồ usecase của ứng dụng

Yêu cầu chức năng hiển thị xếp hạng

Bảng 3.1: Yêu cầu chức năng hiển thị xếp hạng

Người dùng có thể xem danh sách những người có thời gian hoàn thành câu đố nhanh nhất, được phân loại theo từng cấp độ của trò chơi Để truy cập thông tin này, người dùng chỉ cần nhấn vào mục “High Score” trên giao diện.

Xử lý và thu thập dữ liệu liên quan đến tên, thời gian giải, và cấp độ câu đố của ba người chơi dẫn đầu bảng xếp hạng ở mỗi cấp độ câu đố trong cơ sở dữ liệu.

Kết quả Hiển thị nhóm ba người chơi dẫn đầu ở mỗi cấp độ câu đố

Khoa CNTT&TT, Đại học Cần Thơ 8

Yêu cầu chức năng xem giới thiệu

Bảng 3.2: Yêu cầu chức năng xem giới thiệu

Người dùng có thể xem thông tin chi tiết về người phát triển ứng dụng, thời gian ra mắt, phiên bản hiện tại và mô tả ứng dụng bằng cách nhấp vào mục “Introduction” trên giao diện.

Xử lý Lấy dữ liệu về người thực hiện ứng dụng, thời gian ra mắt của ứng dụng, phiên bản, mô tả ứng dụng

Kết quả Hiển thị giới thiệu lên giao diện

Yêu cầu chức năng điền giá trị vào ô số

Bảng 3.3: Yêu cầu chức năng điền giá trị vào ô số

Mô tả Điền giá trị vào ô số Đầu vào Người dùng chọn một ô số bất kỳ sau đó nhập từ bàn phím hoặc chọn số trên giao diện

Xử lý Lấy số người dùng vừa nhập hoặc chọn gán cho ô số vừa chọn để điền giá trị

Kết quả Ô số được chọn hiển thị giá trị mà người dùng điền vào

Yêu cầu chức năng chọn cấp độ câu đố

Bảng 3.4: Yêu cầu chức năng chọn cấp độ câu đố

Mô tả Chọn cấp độ để tự sinh câu đố Đầu vào Người dùng chọn vào “Start game” trên giao diện

• Nếu chọn “Easy” tự sinh câu đố ở cấp độ dễ

• Nếu chọn “Normal” tự sinh câu đố ở cấp độ trung bình

• Nếu chọn “Hard” tự sinh câu đố ở cấp độ khó

Kết quả Hiển thị câu đố ở cấp độ mà người dùng đã chọn

Khoa CNTT&TT, Đại học Cần Thơ 9

Yêu cầu chức năng quay lại

Bảng 3.5: Yêu cầu chức năng quay lại

Mô tả Quay lại lượt điền ô số trước hoặc trạng thái câu đố ban đầu Đầu vào Người dùng chọn vào “Undo” hoặc “Clear” trên giao diện

Nếu người dùng chọn “Undo” sẽ thực hiện xóa giá trị tại ô số mà người dùng vừa mới điền giá trị

Nếu người dùng chọn “Clear” sẽ lấy lại câu đố ban đầu hiển thị lên giao diện

Kết quả Cập nhật lại trạng thái các ô số

Yêu cầu chức năng xem lời giải

Bảng 3.6: Yêu cầu chức năng xem lời giải

Mô tả Xem lời giải cho câu đố Đầu vào Người dùng chọn “Solve” trên giao diện

Xử lý Sử dụng thuật toán vét cạn để tìm lời giải cho câu đố

Kết quả Hiển thị lời giải của câu đố ra màn hình giao diện

Yêu chức năng cảnh báo trùng số

Bảng 3.7: Yêu cầu chức năng cảnh báo trùng số

Mô tả Cảnh báo nếu điền số bị trùng lặp Đầu vào Người dùng chọn một ô số bất kỳ và điền vào giá trị

Xử lý Kiểm tra giá trị được điền có bị trùng lặp ở hàng, cột hoặc lưới con

3x3 của bàn cờ 9x9 hay không Nếu có thì hiển thị ô số bị trùng lặp Kết quả Hiển thị ô số chứa giá trị trùng lặp

Khoa CNTT&TT, Đại học Cần Thơ 10

Yêu cầu chức năng lưu thời gian giải

Bảng 3.8: Yêu cầu chức năng lưu thời gian giải

Sau khi người dùng hoàn thành câu đố, giao diện sẽ hiển thị hộp thoại "Lưu kết quả?" Người dùng cần chọn "OK" và sau đó nhập tên của mình để lưu lại thời gian hoàn thành giải câu đố.

Xử lý Lấy tên người dùng vừa nhập và thời gian hoàn thành giải câu đố lưu vào CSDL

Kết quả Lưu thời gian hoàn thành giải câu đố vào CSDL

3.1.2 Yêu cầu phi chức năng

Yêu cầu phần cứng tối thiểu đối với máy tính:

• Ổ cứng: Còn trống ít nhất 256MB

• Vi xử lí: 32-bit (x86) hoặc 64-bit (x64) có tốc độ 1 GHz trở lên

Yêu cầu phần mềm cần thiết để chạy ứng dụng:

• Hệ điều hành: Windows (Phiên bản: 7 trở lên), Linux (Phiên bản: Ubuntu, Linux Mint, Debian,…)

• JDK 8 (Java Development Kit 8) trở lên

• JRE 1.1 (Java Runtime Environment) trở lên.

XÂY DỰNG CẤU TRÚC DỮ LIỆU

3.2.1 Tổ chức dữ liệu cần thiết

Cấu trúc chung của ứng dụng: Ứng dụng được thực hiện theo mô hình MVC (Model – View – Controller) gồm các gói như sau:

• Model: chứa các đối tượng mà ứng dụng tương tác, các phương thức để quản lý và xử lý dữ liệu

• View: giao diện của ứng dụng bao gồm các Jpanel, Jbutton, Jframe,… ở gói này xác định cách trình bày của ứng dụng

Controller đóng vai trò cầu nối giữa View và Model khi người dùng tương tác với giao diện, gọi các phương thức xử lý để trả về kết quả hiển thị trên giao diện.

Khoa CNTT&TT, Đại học Cần Thơ 11

Hình 3.2: Tổ chức cấu trúc dữ liệu gói Model

Trong gói này đã xây dựng cấu trúc các class:

• Class Cell: Một ô số trong 81 ô số của bàn cờ Sudoku Mỗi ô sẽ có vị trí hàng, cột, và giá trị của ô số

Class Board là đối tượng bàn cờ trong ứng dụng, chứa các thuật toán để sinh ra câu đố ngẫu nhiên theo cấp độ, giải quyết câu đố và kiểm tra xem giá trị có thỏa mãn điều kiện hay không.

Trong quá trình tạo ra các câu đố ngẫu nhiên, việc sử dụng một đối tượng số để đánh dấu các giá trị đã được sử dụng là rất quan trọng nhằm tránh trùng lặp Điều này giúp đảm bảo tính độc đáo và ngẫu nhiên của các câu đố được sinh ra.

Class Player lưu trữ thông tin người dùng, bao gồm thời gian chơi, tên người dùng và cấp độ câu đố, giúp người dùng ghi lại kết quả sau khi hoàn thành thành công.

Khoa CNTT&TT, Đại học Cần Thơ 12

Hình 3.3: Tổ chức cấu trúc dữ liệu gói View

Trong gói này đã xây dựng cấu trúc dữ liệu chứa các class là:

• Class MainFrame: Giao diện chính của ứng dụng, chứa tất cả các thành phần giao diện của ứng dụng

• Class JPanelBoard: Chứa câu đố bàn cờ Sudoku nơi mà người dùng sẽ tương tác khi giải câu đố

• Class JPanelControl: Chứa các chức năng hỗ trợ giải và chức năng quay lại giao diện sảnh của ứng dụng

• Class JPanelLevel: Chứa các cấp độ tự sinh câu đố cho người dùng lựa chọn mỗi cấp độ có một độ khó tương ứng

• Class JPanelScore: Xem nhóm những người dẫn đầu theo từng cấp độ Được chọn lọc dựa trên thời gian hoản thành giải câu đố

• Class JPanelHall: Sảnh chờ khi vừa khởi chạy ứng dụng bao gồm chức năng: Start game, High Score, và Introduction

• Class JPanelArea: Chứa lưới con 9 ô nhỏ trong bàn cờ 9x9

• Class JButtonCell: Một button trong 81 button của bàn cờ

• Class JButtonImage: Một button chứa hình ảnh

• Class JPanelIntro: Chứa các giới thiệu về tác giả, phiên bản, ngày phát hành, các mô tả sơ lược về ứng dụng

Khoa CNTT&TT, Đại học Cần Thơ 13

Hình 3.4: Tổ chức dữ liệu gói Controller

Trong gói này đã xây dựng cấu trúc dữ liệu chứa các class:

• Class Stack: Lưu lại ô số mà người dùng vừa điền giá trị vào

• Class ConnectDatabase: Chứa các phương thức dùng để kết nối CSDL

• Class ControlGame: Chứa các phương thức, sự kiện của ứng dụng

Dữ liệu cần thiết cho thuật toán sinh số ngẫu nhiên bao gồm: matrix[][] là mảng ô số Sudoku, k là giá trị ngẫu nhiên từ 1 đến 9 để điền vào mảng ô số, num dùng để đánh dấu số đã được random, i là chỉ số hàng của mảng ô số, j là chỉ số cột của mảng ô số, và isValid() là phương thức kiểm tra tính hợp lệ của giá trị.

Để thực hiện thuật toán giải ô số Sudoku, cần có các dữ liệu sau: matrix[][] là mảng ô số Sudoku, k là giá trị cần điền vào mảng, i là chỉ số hàng và j là chỉ số cột của mảng Phương thức isValid() được sử dụng để kiểm tra tính hợp lệ của giá trị.

Khoa CNTT&TT, Đại học Cần Thơ 14

Giải thuật sinh số ngẫu nhiên cho Sudoku nhận đầu vào là một mảng ô số chưa có giá trị, với tất cả các ô đều bằng 0 Đầu ra của thuật toán này là một mảng ô số Sudoku hoàn chỉnh, đảm bảo đầy đủ các giá trị và thỏa mãn các điều kiện của trò chơi.

IF (ô số hàng i cột j bằng 0) THEN {

WHILE (Còn số vẫn chưa sử dụng) DO { Sinh số ngẫu nhiên gán giá trị cho k; Điền giá trị k cho ô số; Đánh dấu số k đã được sử dụng;

IF (Giá trị của ô số là hợp lệ và SOLVEGAME(b) bằng true) THEN trả về true;

ELSE gán giá trị ô số bằng 0;

Khoa CNTT&TT, Đại học Cần Thơ 15

Hình 3.5: Lưu đồ thuật toán tự sinh ngẫu nhiên các ô số

Khoa CNTT&TT, Đại học Cần Thơ 16

Giải thuật giải ô số bằng thuật toán vét cạn Đầu vào: Một mảng ô số Sudoku chưa được giải Đầu ra: Một mảng ô số Sudoku đã được giải

IF (ô số hàng i cột j bằng 0) THEN { FOR k=1 TO k

Ngày đăng: 02/06/2022, 13:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Linh; Phân tích và thiết kế thuật toán; Nhà xuất bản Đại học Cần thơ; 2010 Sách, tạp chí
Tiêu đề: Phân tích và thiết kế thuật toán
Nhà XB: Nhà xuất bản Đại học Cần thơ; 2010
[2] Đoàn Văn Ban, Đoàn Văn Trung; Giáo trình lập trình Java; Nhà xuất bản giáo dục Việt Nam; 2014 Sách, tạp chí
Tiêu đề: Giáo trình lập trình Java
Nhà XB: Nhà xuất bản giáo dục Việt Nam; 2014
[3] Website: https://vi.wikipedia.org/wiki/Sudoku Link
[4] Website: https://gpcoder.com/1638-tong-quan-ve-ngon-ngu-lap-trinh-java [5] Website: https://www.edureka.co/blog/mvc-architecture-in-java Link
[6] Website: https://www.geeksforgeeks.org/backtracking-algorithms Link

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Kế hoạch thực hiện đề tài - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Bảng 1.1 Kế hoạch thực hiện đề tài (Trang 7)
2.1.4 Mô hình MVC - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
2.1.4 Mô hình MVC (Trang 8)
Hình 3.1: Sơ đồ usecase của ứng dụng - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.1 Sơ đồ usecase của ứng dụng (Trang 12)
Bảng 3.2: Yêu cầu chức năng xem giới thiệu - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Bảng 3.2 Yêu cầu chức năng xem giới thiệu (Trang 13)
Bảng 3.3: Yêu cầu chức năng điền giá trị vào ô số - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Bảng 3.3 Yêu cầu chức năng điền giá trị vào ô số (Trang 13)
Bảng 3.5: Yêu cầu chức năng quay lại - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Bảng 3.5 Yêu cầu chức năng quay lại (Trang 14)
Bảng 3.8: Yêu cầu chức năng lưu thời gian giải - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Bảng 3.8 Yêu cầu chức năng lưu thời gian giải (Trang 15)
Hình 3.2: Tổ chức cấu trúc dữ liệu gói Model - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.2 Tổ chức cấu trúc dữ liệu gói Model (Trang 16)
Hình 3.3: Tổ chức cấu trúc dữ liệu gói View - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.3 Tổ chức cấu trúc dữ liệu gói View (Trang 17)
Hình 3.4: Tổ chức dữ liệu gói Controller - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.4 Tổ chức dữ liệu gói Controller (Trang 18)
Hình 3.5: Lưu đồ thuật toán tự sinh ngẫu nhiên cá cô số - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.5 Lưu đồ thuật toán tự sinh ngẫu nhiên cá cô số (Trang 20)
Hình 3.6: Lưu đồ thuật toán vét cạn để giải ô số - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.6 Lưu đồ thuật toán vét cạn để giải ô số (Trang 22)
Hình 3.7: Giao diện sảnh trò chơi - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.7 Giao diện sảnh trò chơi (Trang 23)
Hình 3.9: Giao diện bàn cờ - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.9 Giao diện bàn cờ (Trang 24)
Hình 3.8: Giao diện chọn cấp độ - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.8 Giao diện chọn cấp độ (Trang 24)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

w