Trò chơi Ô ăn quang

24 1.4K 13
Trò chơi Ô ăn quang

Đ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

Đồ án tốt nghiệp khoa công nghệ thông tin. Có đầy đủ file báo cáo và đường dẫn tới source code full. Tốt cho việc nghiên cứu làm đồ án tốt nghiệp. Có đầy đủ mục lục và hình ảnh demo minh họa. Đây là những source code , mình lấy từ: http:doanit.com

i MỤC LỤC LỜI CẢM ƠN Error! Bookmark not defined. LỜI CAM ĐOAN Error! Bookmark not defined. DANH MỤC HÌNH ẢNH iv DANH MỤC BẢNG BIỂU vi DANH MỤC TỪ VIẾT TẮT vii GIỚI THIỆU Error! Bookmark not defined. 1. LÝ DO CHỌN ĐỀ TÀI Error! Bookmark not defined. 2. MỤC ĐÍCH VÀ Ý NGHĨA Error! Bookmark not defined. 3. NỘI DUNG ĐỀ TÀI Error! Bookmark not defined. 4. PHẠM VI ĐỀ TÀI Error! Bookmark not defined. 5. BỐ CỤC CỦA LUẬN VĂN Error! Bookmark not defined. Chƣơng 1. CƠ SỞ LÝ THUYẾT Error! Bookmark not defined. 1. MỘT SỐ VẤN ĐỀ VỀ HỆ ĐIỀU HÀNH ANDROID Error! Bookmark not defined. 1.1. Tổng quan về hệ điều hành Android Error! Bookmark not defined. 1.1.1. Lịch sử Android Error! Bookmark not defined. 1.1.2. Các phiên bản hệ điều hành Android Error! Bookmark not defined. 1.1.3. Ứng dụng Android và sự phát triển của Android trong tƣơng lai Error! Bookmark not defined. 1.2 Kiến trúc hệ điều hành Android Error! Bookmark not defined. 1.2.1 Các thành phần cấu tạo nên Android Error! Bookmark not defined. 1.2.2 Các thành phần cấu tạo nên ứng dụng Android . Error! Bookmark not defined. 1.3. Lập trình ứng dụng Android Error! Bookmark not defined. 1.3.1 Thiết lập môi trƣờng phát triển ứng dụng Error! Bookmark not defined. ii 1.3.2 Các thành phần trong Android Project Error! Bookmark not defined. 1.3.3 Đa luồng trong Android Error! Bookmark not defined. 2. CƠ SỞ DỮ LIỆU Error! Bookmark not defined. 2.1. Giới thiệu về cơ sở dữ liệu Error! Bookmark not defined. 2.2. Hệ quản trị cơ sở dữ liệu Error! Bookmark not defined. 2.3. Hệ quản trị cơ sở dữ liệu SQLite trong Android. Error! Bookmark not defined. 3. GIẢI THUẬT SINH NƢỚC ĐI TRONG TRÒ CHƠI Error! Bookmark not defined. 3.1. Cây trò chơi Error! Bookmark not defined. 3.2. Thuật toán MiniMax Error! Bookmark not defined. 3.3 Thuật toán MiniMax với độ sâu hạn chế Error! Bookmark not defined. 3.3.1 Mô tả Error! Bookmark not defined. 3.3.2 Ví dụ Error! Bookmark not defined. Chƣơng 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG Error! Bookmark not defined. 1. TRÒ CHƠI Ô ĂN QUAN Error! Bookmark not defined. 1.1. Mô tả Error! Bookmark not defined. 1.2. Yêu cầu trò chơi Error! Bookmark not defined. 2. BIỂU ĐỒ USE CASE Error! Bookmark not defined. 2.1. Biểu đồ Use Case tổng quát Error! Bookmark not defined. 2.2. Đặc tả các Use Case Error! Bookmark not defined. 2.2.1. Use Case chức năng Chơi mới Error! Bookmark not defined. 2.2.2. Use Case chức năng Chọn mức độ chơi Error! Bookmark not defined. 2.2.3. Use Case chức năng Xem điểm cao Error! Bookmark not defined. 2.2.4. Use Case chức năng chọn chế độ âm thanh Error! Bookmark not defined. 2.2.5. Use Case chức năng xem trợ giúp Error! Bookmark not defined. iii 3. BIỂU ĐỒ TUẦN TỰ Error! Bookmark not defined. 3.1. Biểu đồ tuần tự chức năng Chơi mới Error! Bookmark not defined. 3.1.1. Chế độ chơi với máy Error! Bookmark not defined. 3.1.2. Chế độ 2 ngƣời chơi Error! Bookmark not defined. 3.2. Biểu đồ tuần tự chức năng Chọn mức độ chơi Error! Bookmark not defined. 3.3. Biểu đồ tuần tự chức năng Xem điểm cao . Error! Bookmark not defined. 3.4. Biểu đồ tuần tự chức năng Chọn chế độ âm thanh Error! Bookmark not defined. 4. BIỂU ĐỒ CƠ SỞ DỮ LIỆU Error! Bookmark not defined. 4.1 Biểu đồ Error! Bookmark not defined. 4.2 Mô tả chi tiết biểu đồ CSDL Error! Bookmark not defined. 4.2.1 Điểm cao Error! Bookmark not defined. 4.2.2 Mức độ chơi Error! Bookmark not defined. Chƣơng 3. XÂY DỰNG CHƢƠNG TRÌNH 1 1. MÔI TRƢỜNG LẬP TRÌNH 1 2. HỆ THỐNG MENU TRONG TRÒ CHƠI 1 3. THUẬT TOÁN TRONG TRÒ CHƠI 2 3.1. Cấu trúc dữ liệu 2 3.2. Chế độ 2 ngƣời chơi 2 3.3. Chế độ chơi với máy 3 3.3.1 Sơ đồ xử lý 3 3.3.2 Sinh nƣớc đi cho máy 4 3.4. Thuật toán di chuyển trong khi chơi 6 3.5. Rải quân 8 4. KẾT QUẢ DEMO 9 KẾT LUẬN Error! Bookmark not defined. 1. KẾT QUẢ ĐẠT ĐƢỢC Error! Bookmark not defined. iv 2. NHỮNG VẤN ĐỀ CHƢA LÀM ĐƢỢC Error! Bookmark not defined. 3. HƢỚNG PHÁT TRIỂN Error! Bookmark not defined. TÀI LIỆU THAM KHẢO Error! Bookmark not defined. v DANH MỤC HÌNH ẢNH Hình 1. Một số phiên bản android Error! Bookmark not defined. Hình 2. Các thành phần cấu tạo nên Android Error! Bookmark not defined. Hình 3. Activity Lifecycle Error! Bookmark not defined. Hình 4. Service Lifecycle Error! Bookmark not defined. Hình 5. Truyền Intent và số liệu sang Activity khác Error! Bookmark not defined. Hình 6. Tạo mới 1 ứng dụng Android Error! Bookmark not defined. Hình 7. Cây thƣ mục Project Android Error! Bookmark not defined. Hình 8. Bàn chơi Ô Ăn Quan Error! Bookmark not defined. Hình 9. Trạng thái bàn lúc bắt đầu chơi Error! Bookmark not defined. Hình 10. Cây trò chơi độ sâu 1 sau khi bên A đi ô 3 hƣớng sang phải. Error! Bookmark not defined. Hình 11. Biểu đồ Usecase trò chơi Ô Ăn Quan Error! Bookmark not defined. Hình 12. Biểu đồ tuần tự chơi mới 1 ngƣời chơi. Error! Bookmark not defined. Hình 13. Biểu đồ tuần tự chơi mới 2 ngƣời chơi. Error! Bookmark not defined. Hình 14. Biểu đồ tuần tự chọn mức độ chơi Error! Bookmark not defined. Hình 15. Biểu đồ tuần tự xem điểm cao Error! Bookmark not defined. Hình 16. Biểu đồ tuần tự chọn chế độ âm thanh . Error! Bookmark not defined. Hình 17. Biểu đồ Cơ Sở Dữ Liệu Error! Bookmark not defined. Hình 18. Hệ thống menu trong trò chơi 1 Hình 19. Sơ đồ xử lí ở chế độ 2 ngƣời chơi. 3 Hình 20. Sơ đồ xử lý chế độ chơi với máy. 4 Hình 21. Sơ đồ máy sinh nƣớc đi 5 Hình 22. Sơ đồ di chuyển quân 7 Hình 23. Sơ đồ kiểm tra rải quân 8 vi Hình 24. Giao diện chính 9 Hình 25. Giao diện chọn chế độ chơi 10 Hình 26. Giao diện nhập tên chế độ một ngƣời chơi 10 Hình 27. Giao diện màn hình chơi 11 Hình 28. Giao diện khi chọn ô 11 Hình 29. Giao diện trong lúc di chuyển 12 Hình 30. Giao diện nhập tên chế độ 2 ngƣời chơi 13 Hình 31. Giao diện bàn chơi chế độ 2 ngƣời 13 Hình 32. Giao diện kết thúc trò chơi 14 Hình 33. Giao diện chọn mức độ chơi 14 Hình 34. Giao diện xem điểm cao 15 Hình 35. Giao diện xem hƣớng dẫn 15 vii DANH MỤC BẢNG BIỂU Bảng 1: Đặc tả Usecase chơi mới Error! Bookmark not defined. Bảng 2: Đặc tả Usecase mức độ chơi Error! Bookmark not defined. Bảng 3: Đặc tả Usecase xem điểm cao Error! Bookmark not defined. Bảng 4: Đặc tả Use Chọn chế độ âm thanh Error! Bookmark not defined. Bảng 5: Đặc tả Usecase xem trợ giúp Error! Bookmark not defined. Bảng 6. Cơ sở dữ liệu điểm cao Error! Bookmark not defined. Bảng 7. Cơ sở dữ liệu mức độ chơi Error! Bookmark not defined. viii DANH MỤC TỪ VIẾT TẮT - Menu: trình đơn. - DVM: Dalvik virtual machine. - JDK: Java Development Kit. - J2ME: Java 2 Micro Edition - SDK: Software Development Kit. 1 Chƣơng 3. XÂY DỰNG CHƢƠNG TRÌNH 1. MÔI TRƢỜNG LẬP TRÌNH ‐ Chƣơng trình đƣợc phát triển bằng ngôn ngữ lập trình Java cho Android trên công cụ Eclipse. ‐ Công cụ Eclipse chạy trên môi trƣờng Hệ Điều Hành Windows 7. 2. HỆ THỐNG MENU TRONG TRÒ CHƠI Hình 1. Hệ thống menu trong trò chơi Menu chính chứa các đối tƣợng để ngƣời chơi lựa chọn: ‐ Chơi mới: Chọn để chơi game. Sau khi chọn sẽ có 2 lựa chọn là một ngƣời chơi và hai ngƣời chơi. ‐ Một ngƣời chơi: Chế độ một ngƣời chơi với máy. ‐ Hai ngƣời chơi: Chế độ chơi giữa 2 ngƣời với nhau. ‐ Mức độ: Chọn độ khó khi chơi với máy, có ba mức là dễ, thƣờng và khó. ‐ Điểm cao: Xem điểm cao của 5 ngƣời cao nhất khi chơi với máy. ‐ Thoát: Thoát khỏi trò chơi. ‐ Hiệu ứng âm thanh: Bật tắt âm thanh khi quân di chuyển và ăn quân. ‐ Nhạc nền: Bật tắt nhạc nền. 2 ‐ Hƣớng dẫn: Xem hƣớng dẫn để chơi. 3. THUẬT TOÁN TRONG TRÒ CHƠI 3.1. Cấu trúc dữ liệu Sử dụng một mảng ListCell[] kiểu nguyên gồm 14 phần tử để chứa số lƣợng quân và quan. Trong đó các ô quân là vị trí 1 đến 5 và 8 đến 12, ô quan là các cặp 0;7 và 6;13. Vị trí 6 và 7 dùng chứa quân di chuyển vào, vị trí 0 và 13 để chứa quan. Đối với chế độ chơi với máy, khi tính toán các nƣớc đi của máy, chƣơng trình sử dụng các mảng sao chép của ListCell để lƣu lại vị trí đầu của bàn cờ hoặc xử lí các nƣớc di chuyển mà làm thay đổi trạng thái bàn cờ ban đầu. Đồng thời, sử dụng các mảng MaxValueLeft[], MinValueLeft[], MaxValueRight[], MinValueRight[] gồm 5 phần tử là các mảng dùng để chứa giá trị Max và Min trong khi tính toán trong lúc sinh nƣớc đi cho máy. 3.2. Chế độ 2 ngƣời chơi Hai ngƣời chơi thay phiên nhau đi cho đến khi kết thúc trò chơi. Sau mỗi lần di chuyển một quân cập nhật lại trạng thái của các ô chơi. Đến lƣợt đi của mình, ngƣời chơi sẽ chọn một ô quân có ít nhất là 1 quân của phe mình rồi chọn hƣớng trái hoặc phải để đi quân. Sau mỗi lƣợt đi sẽ kiểm tra điều kiện kết thúc trò chơi là 2 ô quan đều trống. [...]... dẫn: Đƣa ra hƣớng dẫn cho ngƣời chơi 9 Chọn chế độ chơi: Sau khi chọn chơi mới, màn hình chọn chế độ chơi sẽ hiện ra nhƣ sau: Hình 8 Giao diện chọn chế độ chơi ‐ 1 ngƣời chơi: Chơi với máy ‐ 2 ngƣời chơi: 2 ngƣời chơi với nhau Giao diện màn hình 1 ngƣời chơi: Sau khi chọn chế độ chơi một ngƣời, màn hình chơi hiện ra nhƣ sau: Hình 9 Giao diện nhập tên chế độ một ngƣời chơi 10 Sau khi nhập tên và click... lastCell: ô đầu và ô cuối thuộc quyền kiểm soát của ngƣời chơi Cụ thể là các cặp (1;5) và (8;12) ‐ Thực hiện rải quân bằng việc bổ sung vào các ô của ngƣời chơi mỗi ô một viên sỏi 8 4 KẾT QUẢ DEMO Giao diện chính: Khởi động chƣơng giao diện màn hình chính nhƣ sau: Hình 7 Giao diện chính ‐ Chơi mới: Để bắt đầu trò chơi ‐ Mức độ: Chọn độ khó khi chơi với máy ‐ Điểm cao: Xem danh sách top 5 ngƣời chơi có... hình: Hình 10 Giao diện màn hình chơi Trong bàn chơi ra có các ô để báo điểm ngƣời chơi đã ăn đƣợc Giao diện màn hình khi chọn ô: Hình 11 Giao diện khi chọn ô Sau khi chọn một ô, click vào phím mũi tên trái hoặc phải để đi quân 11 Giao diện lúc di chuyển: Hình 12 Giao diện trong lúc di chuyển 12 Giao diện màn hình hai ngƣời chơi: Sau khi chọn chế độ chơi hai ngƣời, màn hình chơi hiện ra nhƣ sau: Hình 13... nhập tên chế độ 2 ngƣời chơi Sau khi nhập tên và click OK giao diện nhƣ sau: Hình 14 Giao diện bàn chơi chế độ 2 ngƣời 13 Giao diện kết thúc trò chơi: Sau khi hai bên ô quan đã trống trò chơi kết thúc với giao diện sau: Hình 15 Giao diện kết thúc trò chơi Giao diện chọn mức độ chơi: Sau khi click chọn mức độ từ màn hình chính ta đƣợc giao diện nhƣ sau: Hình 16 Giao diện chọn mức độ chơi 14 Giao diện xem... chuyển hiện tại đang còn ‐ Choose: Biến chỉ ô chọn để di chuyển ban đầu Có giá trị từ 1 đến 5 đối với ngƣời chơi đầu tiên và từ 8 đến 12 đối với ngƣời chơi còn lại ‐ RecentCellChoose: Biến chỉ ô đang thao tác trên bàn chơi Biến này di chuyển trong phạm vi từ 1 đến 12 ‐ RecentCellChoose = 6|7 : ô 6 và 7 trên bàn chơi là ô quan Nếu sỏi hết tại vị trí trƣớc ô quan thì việc di chuyển sẽ kết thúc ‐ NextMove():... rồi trả về giá trị lớn nhất 3.4 Thuật toán di chuyển trong khi chơi Mỗi lần đến lƣợt, ngƣời chơi chọn một trong các ô phía bên mình và di chuyển Số quân di chuyển ban đầu bằng số quân trong ô chọn Khi đã rải hết số quân này, sẽ có 3 trƣờng hợp xảy ra: hoặc không ăn đƣợc quân nào và mất lƣợt, hoặc ăn quân và đến lƣợt đối phƣơng, hoặc bốc quân ô tiếp theo và di chuyển Sơ đồ thuật toán: 6 Hình 5 Sơ đồ di...Hình 2 Sơ đồ xử lí ở chế độ 2 ngƣời chơi 3.3 Chế độ chơi với máy 3.3.1 Sơ đồ xử lý Ngƣời và máy thay phiên nhau đi cho tới khi kết thúc trò chơi Sau mỗi lần di chuyển một quân cập nhật lại trạng thái của các ô chơi Đến lƣợt đi của mình, ngƣời chơi sẽ chọn một ô quân có ít nhất là 1 quân của phe mình rồi chọn hƣớng trái hoặc phải để đi quân Đến lƣợt... lƣợt đi sẽ kiểm tra điều kiện kết thúc trò chơi là 2 ô quan đều trống 3 Hình 3 Sơ đồ xử lý chế độ chơi với máy 3.3.2 Sinh nước đi cho máy Đến lƣợt máy đi ta xét toàn bộ các ô có thể di chuyển của phía bên máy (Các ô từ 1 đến 5 của ListCell mà có số quân lớn hơn 0) Với mỗi lần di chuyển qua trái hoặc phải tại một nƣớc đi lƣu lại kết quả ăn đƣợc của nƣớc đi này Nếu ăn xong mà buộc đối phƣơng rải quân thì... di chuyển tiếp theo ‐ ListCell[RecentCellChoose]: Ô trên bàn chơi mà hiện tại đang thao tác 7 3.5 Rải quân Khi đến lƣợt đi, nếu các ô của ngƣời chơi bị trống hết thì phải rải quân Số quân rải sẽ là 5, lƣợng quân này sẽ lấy từ quân mà ngƣời chơi đã ăn đƣợc Để thực hiện rải quân trong chƣơng trình, sau khi một bên kết thúc lƣợt đi, thực hiện kiểm tra các ô của bên còn lại Nếu trống hết thì rải quân Sơ... là 3 Sau khi một nƣớc đi của bên máy hoàn thành, máy tiếp tục tính toán xét toàn bộ các ô phía bên ngƣời chơi có thể di chuyển và lƣu lại kết quả lớn nhất mà phía bên ngƣời chơi có thể ăn (Sau mỗi lần di chuyển, nếu ăn xong mà buộc đối phƣơng rải quân thì cộng thêm một số là 3) Tìm ra hiệu các giá trị Điểm của máy ăn và Điểm của ngƣời có đƣợc theo từng cặp Lấy hiệu nào có giá trị lớn nhất và từ đó chọn . DỰNG CHƢƠNG TRÌNH 1. MÔI TRƢỜNG LẬP TRÌNH ‐ Chƣơng trình đƣợc phát triển bằng ngôn ngữ lập trình Java cho Android trên công cụ Eclipse. ‐ Công cụ Eclipse chạy trên môi trƣờng Hệ Điều Hành. các ô phía bên mình và di chuyển. Số quân di chuyển ban đầu bằng số quân trong ô chọn. Khi đã rải hết số quân này, sẽ có 3 trƣờng hợp xảy ra: hoặc không ăn đƣợc quân nào và mất lƣợt, hoặc ăn. hình chơi Trong bàn chơi ra có các ô để báo điểm ngƣời chơi đã ăn đƣợc. Giao diện màn hình khi chọn ô: Hình 11. Giao diện khi chọn ô Sau khi chọn một ô, click vào phím mũi tên trái hoặc

Ngày đăng: 24/08/2015, 21:38

Tài liệu cùng người dùng

Tài liệu liên quan