Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
600,28 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MƠN NHẬP MƠN LẬP TRÌNH ĐỀ TÀI GAME CARO GV HƯỚNG DẪN: TRƯƠNG TOÀN THỊNH Lớp: 20CTT3 Sinh viên thực (Nhóm 10): Tên Lê Xuân Huy Nguyễn Thị Ánh Tuyết Nguyễn Huỳnh Ngọc Trâm Võ Quang Công 5.Hồ Sĩ Đức MSSV 20120494 20120422 20120388 20120445 20120458 Thành phố Hồ Chí Minh - 2020 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MÔN NHẬP MƠN LẬP TRÌNH ĐỀ TÀI GAME CARO GV HƯỚNG DẪN: TRƯƠNG TỒN THỊNH Lớp: 20CTT3 Sinh viên thực (Nhóm 10): Tên Lê Xuân Huy Nguyễn Thị Ánh Tuyết Nguyễn Huỳnh Ngọc Trâm Võ Quang Công 5.Hồ Sĩ Đức MSSV 20120494 20120422 20120388 20120445 20120458 Thành phố Hồ Chí Minh - 2020 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO LỜI CẢM ƠN Để hoàn thành đồ án tài liệu báo cáo này, nhóm sinh viên thực xin chân thành cảm ơn giúp đỡ của: o Các giáo viên phụ trách giảng dạy kiến thức lập trình o Những người bạn giúp nhóm có thêm nhiều ý tưởng cho việc thực đồ án o Tất người ủng hộ tinh thần cho nhóm trình thực đồ án Xin chân thành cảm ơn! Trang 3/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO MỤC LỤC LỜI CẢM ƠN MỞ ĐẦU CHƯƠNG 1: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 1.1 Xác định yêu cầu: 1.1.1 Yêu cầu chức năng: 1.1.2 Yêu cầu tin học: 1.2 Phân tích: 1.2.1 Kịch trò chơi: 1.2.2 Mơ hình xử lí: 1.2.3 Mơ hình liệu: 1.2.4 Phân tích cài đặt: CHƯƠNG 2: CHI TIẾT CÀI ĐẶT 2.1 Các hàm file Menu.cpp (được định nghĩa file Menu.h): .9 2.1.1 Hàm SelectMenu: người dùng ấn phím Enter để chọn menu chuyển tới phần 2.1.2 Hàm MenuHeader: đọc liệu file CARO.txt, xử lí in hình 2.1.3 Hàm printMenu: in lựa chọn (New game, Load game, Help, About, Exit) 10 2.1.4 Hiển thị hiệu ứng người chơi điều khiển bàn phím để chọn xử lí 10 2.1.5 Hàm MenuHelp: Hiển thị hướng dẫn phím tắt .11 2.1.6 Hàm MenuAbout: Hiển thị tên MSSV tác giả 11 2.1.7 Hàm MenuExit: người chơi bấm ESC hỏi lại xem có chắn muốn khơng, có .12 2.1.8 Hàm MenuLoad: có chức để lấy tên file cần mở lại 12 2.2 Các hàm file Caro.cpp (được định nghĩa file Caro.h): .12 2.2.1 Khai báo biến hệ thống: .12 2.2.2 Hàm StartGame: vẽ giao diện hình chơi game 13 2.2.3 Hàm LoadGame: xử lí người chơi chọn Load Game 13 Trang 4/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.4 Hàm input: Xử lí hiệu ứng âm thanh, xử lí người chơi ấn phím tắt 14 2.2.5 Hàm CheckBoard: kiểm tra xem ô cờ đánh hay chưa 15 2.2.6 Hàm NhapDuLieu: Lấy liệu quân cờ từ người đánh xử lí hiệu ứng âm có người chiến thắng hồ 15 2.2.7 Hàm resetData: đặt lại liệu ván .15 2.2.8 Hàm TableResult: Xử lí màu chữ hiển thị số liệu số lượt đánh, số trận thắng người chơi 15 2.2.9 Hàm SaveGame: Xử lí lưu file người chơi chọn Save Game 16 2.2.10 Hàm printData: Xử lí màu, hiển thị quân cờ, số lượt đánh, số trận thắng sau lần người chơi chọn Load Game 16 2.2.11 Hàm Turn: Hiển thị hình chơi lượt đánh người 17 2.2.12 Hàm Result: Hiển thị hiệu ứng có người thắng hồ 17 2.2.13 Hàm checkthangthua: kiểm tra thắng thua sau lượt đi: 18 2.3 Xử lí đồ hoạ hàm file view.cpp (được định nghĩa file view.h): 18 2.3.1 Hàm FixConsoleWindow: Đặt kích thước mặc định cho hình console 18 2.3.2 Hàm GotoXY: Đưa trỏ đến vị trí hình 18 2.3.3 Hàm DrawBoard: Dùng để vẽ bàn cờ Caro .19 2.3.4 Hàm drawTableResult: vẽ bảng kết quả, thể thông số lượt đánh, trận thắng 19 2.3.5 Hàm Game_Footer: vẽ Menu hình chơi game 20 2.3.6 Hàm txtColor: dùng để hiển thị hiệu ứng màu sắc 21 2.3.7 Hàm clear: 21 KẾT LUẬN 22 TÀI LIỆU THAM KHẢO .23 Trang 5/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO MỞ ĐẦU Trong học kì năm ngành Cơng nghệ thơng tin, khoa Công nghệ thông tin - trường Đại học Khoa học Tự nhiên ĐHQG TP.HCM, sinh viên làm quen với mơn Nhập mơn lập trình Bộ mơn giảng dạy kiến thức tảng thiết yếu lập trình viên Tuy nhiên, việc tiếp thu kiến thức với giảng, số ví dụ tập lớp chưa đủ Do đó, việc thực đồ án cuối kì buổi seminar để sinh viên có hội ơn lại kiến thức tìm hiểu sâu rộng học vơ quan trọng Từ đó, với đề tài cho đồ án học phần xây dựng trò chơi caro hình console, nhóm với thành viên bắt tay vào thực thu kết định Sau kết thúc đồ án, kết tổng hợp báo cáo chi tiết tài liệu gồm: mơ hình hoạt động chương trình, phân tích thành phần chương trình, chi tiết cài đặt hàm, kĩ thuật dùng chương trình, ưu nhược điểm chương trình, khó khăn q trình thực hiện, … Tài liệu tâm huyết nhóm sinh viên thực Nếu trích dẫn tài liệu vui lòng kèm theo nguồn! Trang 6/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO CHƯƠNG 1: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 1.1 Xác định yêu cầu: Xây dựng trò chơi caro đơn giản với đồ họa hình console 1.1.1 Yêu cầu chức năng: - Hoạt động với phím ‘A’, ‘W’, ‘S’, ‘D’ để di chuyển phím Enter để thực nước - Có thể lưu/tải (save/load) ván chơi - Nhận biết kết thắng/thua/hòa ván chơi với luật chơi: + quân giống liên tiếp không bị chặn đầu => Thắng; + quân giống liên tiếp không bị chặn đầu => Thắng; + quân giống liên tiếp bị chặn đầu => Không thắng; + quân giống liên tiếp trở lên => Thắng - Có hiệu ứng sinh động hiển thị kết ván chơi - Tổ chức, xử lý giao diện hình chơi rõ ràng sinh động - Cài đặt danh sách menu giao diện hình trị chơi 1.1.2 u cầu tin học: - Ngơn ngữ lập trình: C/C++ - Mơi trường lập trình: Visual Studio - Đối tượng lập trình: hình Console 1.2 Phân tích: 1.2.1 Kịch trị chơi: Khi vào trị chơi xuất hình chờ tải trị chơi, sau hình chờ hình trò chơi với menu chức bao gồm: - New game: Tạo ván chơi mới; - Load game: Tải ván chơi lưu; - Help: Hướng dẫn thao tác với trị chơi; - About: Thơng tin nhóm phát triển trị chơi; - Exit: Thốt khỏi trị chơi; Người chơi thao tác phím ‘W’, ‘S’ để di chuyển Enter để chọn nhấn Esc để khỏi trị chơi Khi tạo ván chơi hay tải ván chơi lưu hiển thị giao diện hình chơi, người chơi thao tác phím ‘A’, ‘W’, ‘S’, ‘D’ để di chuyển Enter để thực nước Nếu có người chơi thắng theo luật caro hiển thị hiệu ứng kết thắng hay bàn cờ caro điền kín hiển thị hiệu ứng kết hịa Hoặc nhấn phím tắt: ‘L’ để mở menu lưu trị chơi, ‘T’ để mở menu tải trò chơi; sau kết thúc ván chơi, người chơi có thẻ bấm phím để chơi ván người chơi nhấn Esc chọn Enter để thoát khỏi game Trang 7/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 1.2.2 Mơ hình xử lí: Dựa kịch trị chơi, nhóm nhận thấy chia hoạt động trị chơi thành phần chính: - Giao diện hình chính: Xử lý thao tác với menu hình Được hiển thị bắt đầu trò chơi sau kết thúc giao diện hình chơi Kết thúc bắt đầu giao diện hình chơi khỏi trị chơi; - Giao diện hình chơi: Xử lý thao tác với bàn cờ thao tác phím tắt Được hiển thị người chơi chọn “New game” “Load game” giao diện hình Kết thúc trở giao diện hình khỏi trị chơi; - Giao diện menu hình chơi: Xử lý thao tác với menu hình chơi Được hiển thị người chơi chọn “New game” “Load game” giao diện hình Kết thúc người chơi nhấn Esc chọn Enter; 1.2.3 Mơ hình liệu: Dữ liệu trị chơi chia làm phần: - Dữ liệu hệ thống: bao gồm biến lưu giá trị hệ thống q trình vận hành trị chơi,…; - Dữ liệu ván chơi: bao gồm biến lưu giá trị thể ván chơi hành: trạng thái bàn cờ, tọa độ trỏ bàn cờ, lượt chơi, vị trí dịng qn cờ thắng; - Dữ liệu người chơi: bao gồm thông tin người chơi: tên, số lượt thắng, số nước người chơi; - Dữ liệu lưu trữ: bao gồm biến lưu thông tin liên quan đến việc lưu trữ liệu ván chơi files; mảnh chiều lưu lại liệu ván chơi; liệu khai báo dạng biến toàn cục Một số biến hàm truyền dạng tham trị tham chiếu để đảm bảo tính linh hoạt việc lập trình 1.2.4 Phân tích cài đặt: Chi tiết cài đặt chương trình chia thành nhóm hàm chính: + Nhóm hàm Model (trong file Caro.cpp định nghĩa file Caro.h) bao gồm hàm có chức xử lý liệu; khởi tạo liệu hệ thống; nhập, xuất file lưu trữ xử lý liệu người chơi, liệu ván chơi liệu lưu trữ; kiểm tra kết trị chơi dựa liệu ván chơi; + Nhóm hàm Control (trong file Control.cpp định nghĩa file Control.h) bao gồm hàm có chức điều khiển thao tác trò chơi, điều khiểu hiển thị hình console, nhận lệnh từ bàn phím thực thi tính trị chơi; + Nhóm hàm View (trong file view.cpp định nghĩa file view.h) bao gồm hàm có chức điều chỉnh hình console, in đối tượng hiệu ứng chức trị chơi hình console - Hàm main() lập trình tập tin Source.cpp gọi hàm thực thi theo trình tự trị chơi Trang 8/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO CHƯƠNG 2: CHI TIẾT CÀI ĐẶT 2.1 Các hàm file Menu.cpp (được định nghĩa file Menu.h): 2.1.1 Hàm SelectMenu: người dùng ấn phím Enter để chọn menu chuyển tới phần 2.1.2 Hàm MenuHeader: đọc liệu file CARO.txt, xử lí in hình Trang 9/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.1.3 Hàm printMenu: in lựa chọn (New game, Load game, Help, About, Exit) 2.1.4 Hiển thị hiệu ứng người chơi điều khiển bàn phím để chọn xử lí Trang 10/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.1.5 Hàm MenuHelp: Hiển thị hướng dẫn phím tắt 2.1.6 Hàm MenuAbout: Hiển thị tên MSSV tác giả Trang 11/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.1.7 Hàm MenuExit: người chơi bấm ESC hỏi lại xem có chắn muốn khơng, có 2.1.8 Hàm MenuLoad: có chức để lấy tên file cần mở lại 2.2 Các hàm file Caro.cpp (được định nghĩa file Caro.h): 2.2.1 Khai báo biến hệ thống: Trang 12/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.2 Hàm StartGame: vẽ giao diện hình chơi game 2.2.3 Hàm LoadGame: xử lí người chơi chọn Load Game Trang 13/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.4 Hàm input: Xử lí hiệu ứng âm thanh, xử lí người chơi ấn phím tắt Trang 14/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.5 Hàm CheckBoard: kiểm tra xem ô cờ đánh hay chưa 2.2.6 Hàm NhapDuLieu: Lấy liệu quân cờ từ người đánh xử lí hiệu ứng âm có người chiến thắng hồ 2.2.7 Hàm resetData: đặt lại liệu ván 2.2.8 Hàm TableResult: Xử lí màu chữ hiển thị số liệu số lượt đánh, số trận thắng người chơi Trang 15/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.9 Hàm SaveGame: Xử lí lưu file người chơi chọn Save Game 2.2.10 Hàm printData: Xử lí màu, hiển thị quân cờ, số lượt đánh, số trận thắng sau lần người chơi chọn Load Game Trang 16/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.11 Hàm Turn: Hiển thị hình chơi lượt đánh người 2.2.12 Hàm Result: Hiển thị hiệu ứng có người thắng hồ Trang 17/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.2.13 Hàm checkthangthua: kiểm tra thắng thua sau lượt đi: 2.3 Xử lí đồ hoạ hàm file view.cpp (được định nghĩa file view.h): 2.3.1 Hàm FixConsoleWindow: Đặt kích thước mặc định cho hình console Trong đoạn mã này, kiểu HWND trỏ trỏ tới cửa sổ Console Để làm việc với đối tượng đồ họa này, ta cần có kiểu Cờ GWL_STYLE xem dấu hiệu để hàm GetWindowLong lấy đặc tính mà cửa sổ Console có Kết trả hàm GetWindowLong số kiểu long, ta hiệu chỉnh dòng số Ý nghĩa để làm mờ nút maximize khơng cho người dùng thay đổi kích thước cửa sổ hành Sau hiệu chỉnh xong, ta dùng hàm SetWindowLong để gán kết hiệu chỉnh trở lại 2.3.2 Hàm GotoXY: Đưa trỏ đến vị trí hình Trong đoạn mã ta sử dụng struct _COORD (COORD), cấu trúc dành xử lý cho tọa độ hình console Ta gán hoành độ tung độ cho biến coord sau thiết lập vị trí lên hình hàm SetConsoleCursorPosition Trang 18/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.3.3 Hàm DrawBoard: Dùng để vẽ bàn cờ Caro 2.3.4 Hàm drawTableResult: Vẽ bảng kết quả, thể thông số lượt đánh, lượt thắng Trang 19/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.3.5 Hàm Game_Footer: vẽ Menu hình chơi game Trang 20/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO 2.3.6 Hàm txtColor: dùng để hiển thị hiệu ứng màu sắc 2.3.7 Hàm clear: Lấp đầy vùng hình chữ nhật hình tọa độ kí tự Trang 21/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO KẾT LUẬN Sau thực đồ án cuối kì, sản phầm trị chơi hoạt động đảm bảo yêu cầu chức đề Các chức trị chơi tương đối hồn chỉnh thực xác Thuật tốn kiểm tra kết trị chơi hoạt động chuẩn xác đáp ứng luật chơi đặt Đồ họa hình console hiển thị tương đối rõ ràng, dễ nhìn Các hiệu ứng hình ảnh âm giúp trò chơi thêm phần sinh động Do đó, đồ án đánh giá hồn thành Ngoài ra, đồ án gần bao quát kiến thức giảng dạy môn học, giúp sinh viên ôn tập đầy đủ kiến thức cốt lõi học, rèn luyện kĩ lập trình thành thạo ngơn ngữ lập trình C/C++ Đồng thời đồ án hội giúp sinh viên tìm hiểu mở rộng kiến thức lập trình với việc xử lý giao diện hình console, xử lý hiệu ứng âm hình ảnh cho trị chơi Tuy nhiên, trò chơi nhiều nhược điểm phát triển Việc hiển thị hình console cịn thơ chưa đủ bắt mắt thay việc xử lý hình thư viện đồ họa hỗ trợ ngơn ngữ lập trình C/C++ Các menu chức trị chơi cịn đơn giản chức Do đó, chức trị chơi bổ sung nâng cấp trở nên đầy đủ hơn, giúp trị chơi hay Bên cạnh đó, trị chơi chương trình chạy mơi trường Visual Studio nên máy tính khác khơng cài đặt mơi trường khơng thể chạy trị chơi Vì thế, trị chơi phát triển việc đóng gói trị chơi để khắc phục nhược điểm Trang 22/23 BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO BAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CAROBAO.cao.do.an.mon.NHAP.mon.lap.TRINH.de.tai.GAME.CARO