Trong dự án này, chúng tôi sẽ phát triển một phiên bản đơn giản hóa của Pikachu Puzzle Game bằng cách làm lại trò chơi với các chữ cái thay vì hình ảnh.. - Người chơi sẽ sử dụng các phím
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
KỸ THUẬT LẬP TRÌNH
BÁO CÁO ĐỒ ÁN
| Sinh viên thực hiện | | MSSV | Lưu Thành Đạt 22127063
Trương Bảo Kiệt 22127223
Trang 2
ĐẠ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
KỸ THUẬT LẬP TRÌNH
BÁO CÁO ĐỒ ÁN
| Giáo viên hướng dẫn | ThS Tạ Việt Phương ThS Võ Hoàng Quân
Trang 4
MỤC LỤC
MỤC LỤC 3
1 Giới thiệu đồ án 3
Trang 51.Giới thiệu đồ án
1.1 Giới thiệu: Đây là đồ án giữa kỳ môn Kỹ thuật lập trình của lớp
CLC03
- Các thành viên của nhóm bao gồm:
1.2 Nhiệm vụ của đồ án:
Xây dựng một trò chơi có tên là The Matching Game (thường được gọi là Pikachu Puzzle Game) trên ngôn ngữ C++
1.3 Tóm tắt trò chơi:
Trò chơi bao gồm một bàn cờ gồm nhiều ô, mỗi ô có chứa một hình ảnh Người chơi sẽ tìm và ghép cặp ô chứa hình ảnh giống nhau và nối với nhau trong một số quy luật cụ thể Khi được ghép đôi một cách hợp lệ, cặp đó sẽ biến mất Trò chơi kết thúc khi tất
cả các cặp được ghép đôi Ảnh 1 cho thấy một số ảnh chụp từ
Pikachu Puzzle Game Trong dự án này, chúng tôi sẽ phát triển một phiên bản đơn giản hóa của Pikachu Puzzle Game bằng cách làm lại trò chơi với các chữ cái (thay vì hình ảnh)
Ảnh 1: Giao diện game
Trang 62.Tổng quan về đồ án
2.1 Hướng dẫn cách chạy trò chơi:
- Bước 1: Người chơi vào thư mục game có tên Pikachu
Ảnh 2: Thư mục game Pikachu
- Bước 2: Tìm đến file có tên là “Pikachuuu.sln”
Ảnh 3: File Pikachuuu.sln
- Bước 3: Người chơi chọn mở file “Pikachuuu.sln” bằng Visual Studio
như ảnh 4.
Ảnh 4: Mở file Pikachuuu.sln bằng Visual Studio.
Trang 7- Bước 5: Sau khi mở file “Pikachuuu.sln”, bấm chọn vào file Main.cpp, sau đó chọn Local Windows Debugger, trò chơi sẽ được khởi chạy như
ở ảnh 6.
Ảnh 5: Ấn vào Main.cpp sau đó chọn Local Windows Debugger.
Ảnh 6: Trò chơi khi đã được khởi chạy thành công.
Trang 82.2 Hướng dẫn cách chơi trò chơi:
- Sau khi được khởi chạy, trò chơi sẽ có giao diện như ở ảnh 6.
- Người chơi sẽ sử dụng các phím mũi tên để di chuyển ô chọn vào các
chế độ có trên Menu trò chơi, cụ thể là NORMAL và DIFFCULT
- Sau khi đã di chuyển ô chọn đến chế độ chơi mong muốn, người chơi
sẽ sử dụng phím Enter để vào chế độ chơi, sau đó nhập tên của người
chơi để lưu lại điểm
Ảnh 7: Dùng phím mũi tên và phím Enter để chọn chế độ chơi sau đó nhập tên.
- Đối với Normal Mode: Khi đã vào chế độ chơi, người chơi sẽ sử dụng
phím mũi tên để di chuyển ô chọn, sau đó dùng phím Enter để chọn cặp
phù hợp, nếu cặp được chọn là hợp lệ, cặp đó sẽ được xóa đi và người
chơi sẽ được cộng điểm, nếu không người chơi sẽ bị xử thua sau 3 lần chọn sai
Ảnh 8: Normal Mode.
- Đối với Difficult Mode: Tương tự như cách chơi Normal Mode, nhưng
nếu cặp được chọn là hợp lệ, cặp đó sẽ được xóa đi, sau đó cái ô còn
Trang 9lại sẽ được dịch chuyển về phía bên trái để lấp đầy những khoảng
trống và người chơi sẽ được cộng điểm, nếu không người chơi sẽ bị xử thua sau 3 lần chọn sai, nếu không còn cặp nào hợp lệ để ghép, người chơi sẽ được xử thắng
Ảnh 9: Difficult Mode.
- Nếu muốn thoát trong lúc chơi game, người chơi có thể sử dụng phím
ESC.
Trang 103.Standard Features
3.1 Màn hình Menu:
3.2 Qui tắc của trò chơi bao gồm:
Các kí tự của 2 ô đã chọn phải giống nhau
Các trường hợp hợp lệ để bắt cặp 2 ô với nhau:
3.2.1 Kiểu I:
Ảnh 10, 11: Bắt cặp kiểu I
Trang 113.2.2 Kiểu L:
Ảnh 12, 13: Bắt cặp kiểu L
3.2.3 Kiểu U:
Ảnh 14, 15: Bắt cặp kiểu U
Trang 123.2.4 Kiểu Z:
Ảnh 16, 17: Bắt cặp kiểu Z
3.3 Khi thắng 1 màn (Lưu ý: cần ấn y hoặc n để tiếp tục hay dừng lại):
Ảnh 18: Màn hình hiện ra khi thắng 1 màn chơi
3.4 Khi thua (Lưu ý: khi chờ để quay lại màn hình Menu ban đầu xin
đừng ấn Enter):
Trang 13Ảnh 21: Màn hình hiện ra khi thua 1 màn chơi
4.Advance Features
4.1 Hiệu ứng màu sắc:
Trang 14 Trong trò chơi, chúng tôi có sử dụng thêm header <window.h> và
dùng hàm SetConsoleTextAttribute () để đổi màu cho một số
đối tượng (mặc định là màu trắng) như logo trò chơi, ô chọn, ảnh nền, các chữ cái trong các ô, tên 3 người chơi đúng đầu bảng xếp hạng, …
Ảnh 22: Một số hiệu ứng màu sắc.
4.2 Hiệu ứng âm thanh:
Để tăng thêm tính hấp dẫn và khả năng tương tác của người chơi đối với môi trường trong trò chơi, chúng tôi có sử dụng thêm
header <mmsystem.h> và liên kết thư viện “winmm.lib” để gọi hàm phát ra âm thanh ở dạng file.wav ra ngoài hệ thống.
Các âm thanh chúng tôi đã thêm vào bao gồm: âm thanh nền khi vào mới vào trò chơi; âm thanh khi di chuyển bằng phím mũi tên;
âm thanh khi nhấn Enter; âm thanh khi thua và thắng; âm thanh khi chọn đúng, khi chọn sai
4.3 Hiệu ứng hình ảnh:
Trang 15Nhằm tăng sự dễ dàng khi thao tác trong trò chơi cũng như sự bắt mắt đối với người chơi, chúng tôi đã tạo ra một số hiệu ứng hình ảnh như sau:
Tô màu cho ô chọn: Để người chơi dễ dàng thao tác, chúng tôi
dùng các hàm có sẵn trong header <window.h> như
SetConsoleTextAttribute() để cài đặt cho màu nền của ô chọn thành
màu trắng (đối lập với màu đen của màn hình console) giúp cho
người chơi dễ dàng thao tác
Ảnh 23: Tô màu nền cho ô chọn.
Đổi màu ô chọn khi chọn đúng hoặc sai: Vẫn sử dụng header
<window.h> và hàm SetConsoleTextAttribute() để cài đặt cho màu nền của ô chọn, nếu chọn được cặp phù hợp chúng tôi sẽ đổi màu
của ô chọn thành màu xanh, nếu chọn sai chúng tôi sẽ đổi thành màu đỏ.
Trang 16 Hiệu ứng dừng màn hình: chúng tôi cũng hàm sleep() để dừng
màn hình console lại khoảng vài mili giây sau khi người chơi chọn đúng hoặc sai, khi xóa các ô còn lại của trò chơi khi trò chơi kết thúc, khi thông báo “YOU LOSE” hoặc “YOU WIN” để người chơi
có thể quan sát các trạng thái của trò chơi, cũng như làm cho trò chơi thêm sinh động
Ảnh 25: Hiệu ứng dừng màn hình.
4.4 Bảng xếp hạng:
Để lưu giữ thành tích của các người chơi xuất sắc, chúng tôi đã lưu tên và điểm của họ vào trong 1 file có tên là “leaderboard.txt”
Ở mục Menu, khi người chơi chọn vào “LEADERBOARD”, họ sẽ thấy tên và điểm của top 10 người chơi đạt điểm số cao nhất, top
3 sẽ được tô màu nổi bật hơn so với số còn lại
Ảnh 26: Giao diện bảng xếp hạng.
Trang 174.5 Ảnh nền:
Trong trò chơi, sau khi người dùng chọn đúng cặp phù hợp, chúng tôi sẽ tiến hành xóa cặp đó đi và hiện dần dần ảnh nền là một chú Pikachu dễ thương ở trong bảng trò chơi, nếu người chơi chọn hết các cặp, chú Pikachu sẽ hiện ra hoàn toàn
Ảnh 27: Ảnh nền Pikachu.