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 152 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

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Ế.

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 TỐN VÉT CẠN Sinh viên thực Giảng viên hướng dẫn Họ tên: Trương Phúc Vĩnh Ths Phan Huy Cường MSSV: B1906809 Lớp: DI1996A5 HỌC KỲ II, 2021-2022 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Khoa CNTT&TT, Đại học Cần Thơ i MỤC LỤC CHƯƠNG TỔNG QUAN I MƠ TẢ BÀI TỐN II MỤC TIÊU CẦN ĐẠT ĐƯỢC III HƯỚNG GIẢI QUYẾT .1 IV KẾ HOẠCH THỰC HIỆN CHƯƠNG LÝ THUYẾT I KHÁI NIỆM ĐƯỢC SỬ DỤNG .3 2.1.1 Trò chơi sudoku gì? 2.1.2 Thuật toán vét cạn 2.1.3 Khái niệm JVM 2.1.4 Mơ hình MVC II KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI .4 CHƯƠNG ỨNG DỤNG I PHÂN TÍCH YÊU CẦU BÀI TOÁN 3.1.1 Yêu cầu chức .7 3.1.2 Yêu cầu phi chức .10 3.1.3 Yêu cầu phần mềm 10 II XÂY DỰNG CẤU TRÚC DỮ LIỆU 10 3.2.1 Tổ chức liệu cần thiết 10 3.2.2 Thiết kế giải thuật 14 III GIỚI THIỆU CHƯƠNG TRÌNH .18 IV QUY TRÌNH SỬ DỤNG 21 CHƯƠNG KẾT LUẬN ĐÁNH GIÁ 22 I KẾT QUẢ ĐẠT ĐƯỢC 22 II HẠN CHẾ 22 III HƯỚNG PHÁT TRIỂN 22 PHỤ LỤC 23 I CÀI ĐẶT ỨNG DỤNG 23 II HƯỚNG DẪN SỬ DỤNG .23 TÀI LIỆU THAM KHẢO 29 Khoa CNTT&TT, Đại học Cần Thơ ii DANH MỤC HÌNH Hình 2.1: Minh họa chu trình thực chương trình Java Hình 3.1: Sơ đồ usecase ứng dụng Hình 3.2: Tổ chức cấu trúc liệu gói Model 11 Hình 3.3: Tổ chức cấu trúc liệu gói View 12 Hình 3.4: Tổ chức liệu gói Controller 13 Hình 3.5: Lưu đồ thuật tốn tự sinh ngẫu nhiên số 15 Hình 3.6: Lưu đồ thuật tốn vét cạn để giải ô số 17 Hình 3.7: Giao diện sảnh trị chơi 18 Hình 3.8: Giao diện chọn cấp độ 19 Hình 3.9: Giao diện bàn cờ 19 Hình 3.10: Giao diện xem xếp hạng 20 Hình 3.11: Giao diện xem giới thiệu .20 Hình 3.12: Quy trình sử dụng chức ứng dụng .21 Khoa CNTT&TT, Đại học Cần Thơ iii DANH MỤC BẢNG Bảng 1.1: Kế hoạch thực đề tài Bảng 3.1: Yêu cầu chức hiển thị xếp hạng .7 Bảng 3.2: Yêu cầu chức xem giới thiệu Bảng 3.3: Yêu cầu chức điền giá trị vào ô số Bảng 3.4: Yêu cầu chức chọn cấp độ câu đố Bảng 3.5: Yêu cầu chức quay lại Bảng 3.6: Yêu cầu chức xem lời giải Bảng 3.7: Yêu cầu chức cảnh báo trùng số Bảng 3.8: Yêu cầu chức lưu thời gian giải 10 Khoa CNTT&TT, Đại học Cần Thơ iv Trị chơi Sudoku sử dụng thuật tốn vét cạn CHƯƠNG Chương TỔNG QUAN I MÔ TẢ BÀI TỐN Trong thời đại ngày có nhiều ứng dụng, trò chơi đời Tuy nhiên, có trị chơi xuất lâu, không cuồng nhiệt, bùng nổ đem lại sức hút lạ thường đơn giản lơi nó, trị chơi Sudoku Sudoku trò chơi đòi hỏi tư logic, với tính kiên trì tập trung cao độ người chơi Xuất Việt Nam khoảng năm 2005, chiếm lĩnh vị trí quan trọng thị trường trị chơi giải trí nước ta hệ trẻ u thích Ngồi hấp dẫn số, kích thích tư duy, suy nghĩ logic, Sudoku cịn hấp dẫn giới trẻ lý chơi lúc nơi, xe buýt, chơi, chí du lịch Trước đây, cơng nghệ chưa phát triển người chơi Sudoku thường chơi theo cách truyền thống quyến sách, vở, hay báo chí ngày mà nhà, gia đình có trang bị máy tính nên việc chơi Sudoku trở nên vơ dễ dàng, tiện lợi Vì thế, việc xây dựng ứng dụng trò chơi để sử dụng máy tính cần thiết Để xây dựng ứng dụng việc lựa chọn thuật tốn, giải pháp để tạo số cho trị chơi hỗ trợ giải số vơ quan trọng Có nhiều thuật tốn dùng cho việc xây dựng ứng dụng Sudoku nhiên thuật tốn áp dụng thuật tốn vét cạn Thuật tốn áp dụng cho việc sinh ngẫu nhiên ô số hỗ trợ giải câu đố II MỤC TIÊU CẦN ĐẠT ĐƯỢC Nắm bắt vấn đề cần giải với mong muốn ứng dụng kiến thức học vào thực tiễn Do mục tiêu đề tài xây dựng trò chơi đơn giản vận dụng kiến thức học Bên cạnh trị chơi cần có giao diện đồ họa cho phép người dùng giải thủ công ô số cung cấp tiện ích hỗ trợ giải trị chơi Sudoku Ngồi cần có chức nhập số tự sinh ô số cho bàn cờ Sudoku Đặc biệt trị chơi cần phải áp dụng thuật tốn vét cạn vào đề tài để giải ô số III HƯỚNG GIẢI QUYẾT Sử dụng mảng hai chiều 9x9 để lưu ô số bàn cờ Sudoku Bước đầu tạo bàn cờ Sudoku cách chọn ngẫu nhiên số từ đến để điền vào ô số hàng cột tương ứng mảng chiều 9x9 Nếu số không thỏa điều kiện lặp lại việc sinh số ngẫu nhiên Giao diện đồ họa người dùng xây dựng Java Swing, thân thiện, dễ sử dụng Khoa CNTT&TT, Đại học Cần Thơ Trị chơi Sudoku sử dụng thuật tốn vét cạn Chương IV KẾ HOẠCH THỰC HIỆN Để thực đề tài cần lập kế hoạch cho cơng việc để đảm bảo hồn thành thời hạn Sau bảng kế hoạch thiết kế cho đề tài (Bảng 1.1): Bảng 1.1: Kế hoạch thực đề tài STT Công việc thực Thời gian thực Xác định yêu cầu, phân tích yêu cầu cần thiết tìm kiếm tài liệu liên quan trò chơi Sudoku Tuần - 2 Củng cố kiến thức thuật toán “vét cạn” nghiên cứu cách vận dụng vào đề tài Tuần - Thiết kế giao diện, mơ hình tổng thể ứng dụng, chức ứng dụng Tuần - Lập trình thuật tốn ứng dụng Tuần – 11 Lập trình giao diện đồ họa ứng dụng Tuần 12 - 14 Kiểm thử ứng dụng hoàn thiện báo cáo Tuần 15 - 18 Khoa CNTT&TT, Đại học Cần Thơ Trị chơi Sudoku sử dụng thuật tốn vét cạn CHƯƠNG Chương LÝ THUYẾT I KHÁI NIỆM ĐƯỢC SỬ DỤNG 2.1.1 Trị chơi sudoku gì? Trị chơi Sudoku ban đầu có tên Number Place trò chơi xếp chữ số dựa logic theo tổ hợp Mục tiêu trò chơi điền chữ số vào lưới 9×9 cho cột, hàng, phần số chín lưới 3×3 tất chữ số từ đến Điều kiện chữ số điền vào không xuất lần hàng, cột lưới 3x3 Bàn cờ điền số ô, nhiệm vụ người chơi tiếp tục điền số vào ô trống tất ô điền giá trị thỏa mãn 2.1.2 Thuật toán vét cạn Thuật toán “vét cạn” số kỹ thuật quay lui Do trước tìm hiểu thuật tốn vét cạn cần biết kỹ thuật quay lui Kỹ thuật quay lui (backtracking) trình phân tích xuống quay lui trở lại theo đường qua Khi chưa tìm thấy điểm dừng tiếp tục phân tích xuống Nếu tìm thấy điểm dừng hay hiểu nơi xác định lời giải, xác định khơng thể (hoặc khơng nên) tiếp tục phân tích theo hướng nữa, lúc quay ngược lại theo đường vừa qua để tìm hướng phân tích khác thích hợp Đối với thuật tốn “vét cạn” khơng xác định nên hay không nên tiếp tục mà phân tích đến tất điểm dừng xác định tiếp tục thực quay lui trở lại theo đường qua Thuật toán “vét cạn” kỹ thuật hay qua hết tất trường hợp để tìm lời giải, đảm bảo cho lời giải xác 2.1.3 Khái niệm JVM JVM (Java Virtual Machine ) máy ảo Java dùng để chuyển mã byte code (.class) thành mã máy tương ứng (.exe) để thực thi hệ điều hành kiến trúc CPU khác Máy ảo chứa tập lệnh logic để xác định hoạt động máy tính, xem hệ điều hành thu nhỏ Source code JDK Byte code JVM Mã thực java Biên dịch class Thơng dịch exe Hình 2.1: Minh họa chu trình thực chương trình Java 2.1.4 Mơ hình MVC Mơ hình MVC mẫu thiết kế nhằm 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 với nhau, thành phần có Khoa CNTT&TT, Đại học Cần Thơ Trò chơi Sudoku sử dụng thuật toán vét cạn Chương nhiệm vụ riêng biệt độc lập với thành phần khác, để dễ quản lý, phát triển bảo trì Ba phần là: • Model: quản lý, xử lý liệu • View: giao diện, xác định cách trình bày ứng dụng • Controller: quản lý tương tác Model View II KẾT QUẢ VẬN DỤNG LÝ THUYẾT VÀO ĐỀ TÀI Dựa kiến thức học thuật toán “vét cạn” để áp dụng vào việc giải câu đố bàn cờ Sudoku cụ thể sau: 9 8 5 2 9 5 2 9 3 4 9 2 Cần điền vào tất ô trống giá trị từ đến thỏa ba điều kiện: 1) Không trùng với số có hàng 2) Khơng trùng với số có cột 3) Khơng trùng với lưới 3x3 bàn cờ 9x9 Mô tả phương pháp giải: Vận dụng kiến thức thuật toán “vét cạn” ta duyệt qua ô số bàn cờ Nếu số có giá trị bỏ qua, ô số trống thực chọn số số nhỏ khoảng từ đến để điền vào ô trống số chọn thỏa ba điều kiện đề duyệt Nếu khơng thỏa ba điều kiện thực tăng giá trị số chọn lên đơn vị Kiểm tra lại xem có thỏa điều kiện hay khơng Nếu thỏa duyệt Nếu khơng thỏa tiếp tục tăng giá trị số chọn lên đến giá trị chọn số mà khơng thỏa mãn điều kiện thực quay lui ô vừa duyệt trước tiếp tục tăng giá trị lên kiểm tra điều kiện Tiếp tục tất ô điền giá trị thỏa mãn điều kiện Khoa CNTT&TT, Đại học Cần Thơ Trò chơi Sudoku sử dụng thuật toán vét cạn Chương Giải chi tiết: Ta đặt matrix[i][j] tương ứng với ô hàng i cột j, i j có giá trị từ đến Đặt k giá trị chọn để điền vào ô trống, k nhận giá trị từ đến Duyệt matrix[0][5]: • K=1 => Thỏa điều kiện => Duyệt ô trống Duyệt matrix[3][0]: • • • • • • K=1 => Không thỏa điều kiện K=2 => Không thỏa điều kiện K=3 => Không thỏa điều kiện K=4 => Không thỏa điều kiện K=5 => Không thỏa điều kiện K=6 => Thỏa điều kiện => Duyệt ô trống Duyệt matrix[3][5]: • • • • • • • • • K=1 => Không thỏa điều kiện K=2 => Không thỏa điều kiện K=3 => Không thỏa điều kiện K=4 => Không thỏa điều kiện K=5 => Không thỏa điều kiện K=6 => Không thỏa điều kiện K=7 => Không thỏa điều kiện K=8 => Không thỏa điều kiện K=9 => Không thỏa điều kiện => Quay lui Quay lui matrix[3][0]: • K=7 => Thỏa điều kiện => Duyệt trống Duyệt matrix[3][5]: • • • • • • K=1 => Không thỏa điều kiện K=2 => Không thỏa điều kiện K=3 => Không thỏa điều kiện K=4 => Không thỏa điều kiện K=5 => Không thỏa điều kiện K=6 => Thỏa điều kiện => Duyệt trống Duyệt matrix[5][0]: • K=1 => Khơng thỏa điều kiện • K=2 => Khơng thỏa điều kiện Khoa CNTT&TT, Đại học Cần Thơ Trị chơi Sudoku sử dụng thuật tốn vét cạn Chương • Lưu đồ thuật tốn: Hình 3.5: Lưu đồ thuật tốn tự sinh ngẫu nhiên số Khoa CNTT&TT, Đại học Cần Thơ 15 Trò chơi Sudoku sử dụng thuật toán vét cạn Chương Giải thuật giải ô số thuật toán vét cạn Đầu vào: Một mảng ô số Sudoku chưa giải Đầu ra: Một mảng số Sudoku giải • Mã giả: function SOLVEGAME(b): FOR i=0 TO i

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

Xem thêm:

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)
Hình 3.11: Giao diện xem giới thiệu - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.11 Giao diện xem giới thiệu (Trang 25)
Hình 3.10: Giao diện xem xếp hạng - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình 3.10 Giao diện xem xếp hạng (Trang 25)
Hình 3.12: Quy trình sử dụng các chức năng chính 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.12 Quy trình sử dụng các chức năng chính của ứng dụng (Trang 26)
Hình phụ lục 1: Chức năng chọn cấp độ câu đố - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 1: Chức năng chọn cấp độ câu đố (Trang 28)
Hình phụ lục 2: 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
Hình ph ụ lục 2: Chức năng điền giá trị vào ô số (Trang 29)
Hình phụ lục 3: Chức năng cảnh báo giá trị không phải là số - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 3: Chức năng cảnh báo giá trị không phải là số (Trang 29)
Hình phụ lục 5: Chức năng giải câu đố - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 5: Chức năng giải câu đố (Trang 30)
Hình phụ lục 4: Chức năng cảnh báo trùng số - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 4: Chức năng cảnh báo trùng số (Trang 30)
Hình phụ lục 8: Chức năng lưu lại trạng thái bàn cờ - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 8: Chức năng lưu lại trạng thái bàn cờ (Trang 31)
Hình phụ lục 7: Chức năng quay lại bước điền giá trị trước - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 7: Chức năng quay lại bước điền giá trị trước (Trang 31)
Hình phụ lục 9: Chức năng xem xếp hạng - CT239 NIÊN LUẬN CƠ SỞ GAME SUDOKU THUẬT TOÁN VÉT CẠN QUAY LUI
Hình ph ụ lục 9: Chức năng xem xếp hạng (Trang 32)
Hình phụ lục 10: 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
Hình ph ụ lục 10: Chức năng xem giới thiệu (Trang 33)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w