Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1 MB
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 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 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 Thành phố Hồ Chí Minh - 2020 LƠI CẢM ƠN Để hồ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 q trình thực đồ án Xin chân thành cảm ơn! Trang 3/23 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 năng: 1.1.2 Yêu cầu chức Yêu cầu tin học: 1.2 Phân tích: 1.2.1 chơi: 1.2.2 Kịch trị 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): 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í 2.1.5 Hiển thị hướng dẫn phím tắt Hàm MenuHelp: 11 2.1.6 MenuAbout: Hiển thị tên MSSV tác giả Hàm 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ó 2.1.8 có chức để lấy tên file cần mở lại 10 12 Hàm MenuLoad: 12 2.2 Các hàm file Caro.cpp (được định nghĩa file Caro.h): .12 2.2.1 Khai báo 12 biến hệ thống: 2.2.2 vẽ giao diện hình chơi game Hàm StartGame: 13 xử lí người chơi chọn Load Game Hàm LoadGame: 13 2.2.3 Trang 4/23 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 hoà 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 hoà 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 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 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 để thoát 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 để khỏi game Trang 7/23 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 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 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 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 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 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 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 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 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 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 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 hoà Trang 17/23 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 hồnh độ tung độ cho biến coord sau thiết lập vị trí lên hình hàm SetConsoleCursorPosition Trang 18/23 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 2.3.5 Hàm Game_Footer: vẽ Menu hình chơi game Trang 20/23 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 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 Ngồ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 cịn nhiều nhược điểm cịn 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 TÀI LIỆU THAM KHẢẢ̉O https ://nguyenvanhieu.vn / https://daynhauhoc.com / https ://www.youtube.com / https://stackoverrun.com / https://stackoverflow.com / Tài liệu hướng dẫn giảng viên Trang 23/23 ... 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... 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:... đó, đồ á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