1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console

51 23 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

Thông tin cơ bản

Tiêu đề Xây Dựng Trò Chơi Rắn Săn Mồi Đơn Giản Với Đồ Họa Là Màn Hình Console
Định dạng
Số trang 51
Dung lượng 186,54 KB

Cấu trúc

  • I. LỜI CẢM ƠN (3)
  • II. GIỚI THIỆU ĐỒ ÁN (3)
  • A. Xác định yêu cầu (3)
  • B. Yêu cầu chức năng (4)
  • C. Yêu cầu tin học (5)
    • III. MODULE SYSTEM (5)
  • A. File System.h (5)
  • B. File System.cpp (8)
    • 1. Hàm FixConsoleWindow() (8)
    • 2. Hàm GotoXY() (8)
    • 3. Hàm ShowCur() (9)
    • 4. Hàm SetColor() (9)
    • 5. Hàm DisableSelection() (11)
    • 6. Hàm ShowScrollbar() (11)
    • 7. Hàm resizeConsole() (11)
    • IV. MODULE PREPARE (12)
  • A. File Prepare.h (12)
  • B. File Prepare.cpp (12)
    • 1. Hàm IsValidLevel1() (12)
    • 2. Hàm GenerateFood() (0)
    • 3. Hàm ResetDataLV1() (0)
    • V. MODULE PROCESSGAME (18)
  • A. File ProcessGame.h (18)
  • B. File ProcessGame.cpp (19)
    • 1. Hàm StartGame() (19)
    • 2. Hàm PauseGame(HANDLE t) (20)
    • 3. Hàm SaveGame() (0)
    • 4. Hàm LoadGame() (23)
    • 5. Hàm Eat() (25)
    • 6. Hàm ProcessDead() (28)
    • 7. Hàm MoveLeft(), MoveRight(), MoveUp(), MoveDown() (29)
    • 8. Hàm ThreadFunc() (30)
    • 9. Hàm Menu() (32)

Nội dung

GIỚI THIỆU ĐỒ ÁN

Ngành công nghiệp game đã có mặt tại Việt Nam từ lâu, bắt đầu từ điện thoại và dần mở rộng sang máy tính Game không chỉ mang lại niềm vui giải trí mà còn là cơ hội kiếm thêm thu nhập cho người chơi Trong số đó, Hunting Snake nổi bật với sự phát triển và phổ biến trên cả hai nền tảng, thu hút đông đảo người chơi với nhiều phiên bản khác nhau Trong môn Kỹ thuật lập trình của lớp 21CTT4, dưới sự hướng dẫn của Tiến Sĩ Trương Toàn Thịnh, trò chơi này được xem như một đồ án thực hành quan trọng, khuyến khích sinh viên ngành Công nghệ thông tin phát triển tư duy và kỹ năng lập trình.

Xác định yêu cầu

Trải qua quá trình tìm hiểu, học tập dưới sự hướng dẫn của giảng viên

Nhóm 3-21CTT4 do Trương Toàn Thịnh dẫn đầu đã phát triển thành công phiên bản trò chơi Hunting Snake Game với các chức năng nổi bật như: điều khiển di chuyển con rắn bằng các phím W, A, S, D; tăng chiều dài khi ăn vật phẩm, trong đó mỗi đốt thân rắn tương ứng với một chữ số trong mã số sinh viên của các thành viên; đồng thời hỗ trợ lưu và tải game trong quá trình chơi, kèm theo âm thanh phù hợp với các thao tác.

Báo cáo này sẽ giải thích chi tiết về hoạt động và chức năng của từng hàm, với các thông tin cụ thể được trình bày ở mục III.

Danh sách thành viên tham gia đồ án:

Xây dựng trò chơi Rắn săn mồi đơn giản với đồ họa là màn hình

Yêu cầu chức năng

- Di chuyển con rắn: bằng các phím ‘A’, ‘W’, ‘S’, ‘D’ để ăn vật phẩm.

- Xử lý trường hợp đầu rắn chạm vào thân của nó: kết thúc trò chơi khi trường hợp này xảy ra.

Khi người chơi nhấn phím ‘T’, hệ thống sẽ yêu cầu họ cung cấp tên tệp để lưu trò chơi Ngược lại, khi nhấn phím ‘L’, người chơi sẽ được yêu cầu nhập tên tập tin để tải trò chơi.

Để giữ độ dài thân rắn không đổi khi di chuyển tới cấp tiếp theo, người chơi cần tìm hiểu và áp dụng các biện pháp để đảm bảo rằng độ dài này không bị cài đặt lại theo mặc định Chỉ khi vượt qua 4 cấp độ và quay trở lại cấp 1 với tốc độ di chuyển nhanh hơn, độ dài thân rắn mới được cài đặt lại.

Khi con rắn tiêu thụ đủ 8 vật phẩm, một cổng sẽ xuất hiện trên màn hình Console Con rắn cần di chuyển qua cổng này để tiến vào cấp độ tiếp theo.

2 tiếp theo Tuy nhiên, con rắn phải di chuyển qua cổng hoàn toàn thì màn hình Console mới chuyển sang màn hình của cấp tiếp theo.

- Cung cấp hiệu ứng: Khi con rắn chạm vào tường, thân của nó hoặc cổng, lập trình viên tạo các hiệu ứng sống động cho các quá trình này.

- Tạo menu: Để người chơi dễ dàng hơn trong việc chọn hoạt động tiếp theo mà họ muốn.

- Thân rắn: được hình thành từ mã số sinh viên của các thành viên trong nhóm.

Yêu cầu tin học

File System.h

9 enum state { MENU, INGAME, SETTING, SETCOLOR, SETSPEED, SETSOUND LOADGAME, INFORMATION, GAMEOVER, QUITGAME };

1 extern int HEIGH_CONSOLE, WIDTH_CONSOLE;

3 void SetColor(WORD color); void resizeConsole(int width, int height);

- Khai báo các biến toàn cục và các hàm xử lý thao tác trên màn hình Console được sử dụng trong suốt Project.

- Dòng 4 khai báo một chuỗi kí tự, đó là các chữ số trong mã số sinh viên của các thành viên trong nhóm.

File System.cpp

Hàm FixConsoleWindow()

Hàm này được dùng để cài đặt kích thước của màn hình Console, không cho phép người chơi thay đổi kích thước màn hình Console.

4 LONG style = GetWindowLong(consoleWindow, GWL_STYLE);

5 style = style & ~(WS_MAXIMIZEBOX) & ~(WS_THICKFRAME);

6 SetWindowLong(consoleWindow, GWL_STYLE, style);

Hàm GotoXY()

Hàm nhận vào đối số là tọa độ vị trí mà lập trình viên muốn di chuyển đến và thực hiện các thao tác trên màn hình Console.

4 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

Hàm ShowCur()

Hàm ShowCur() sử dụng hàm SetConsoleCursorInfo() để thiết lập kích thước và khả năng hiển thị của con trỏ chuột trên màn hình Console, cho phép ẩn hoặc hiển thị con trỏ một cách linh hoạt.

3 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

4 CONSOLE_CURSOR_INFO cursor = { 1, CursorVisibility };

Hàm SetColor()

Hàm có khả năng thay đổi màu sắc của các ký tự khi hiển thị trên màn hình, làm cho trò chơi trở nên hấp dẫn, bắt mắt và thu hút người chơi hơn.

3 HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

5 CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;

6 GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);

8 WORD wAttributes = screen_buffer_info.wAttributes;

Hàm DisableSelection()

Hàm ngăn chặn việc người chơi thao tác chuột lên các phần tử đang hoạt động trên màn hình Console và hạn chế gây khó chịu cho người chơi.

3 HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);

5 SetConsoleMode(hStdin, ~ENABLE_QUICK_EDIT_MODE);

Hàm ShowScrollbar()

Hàm thao tác ẩn thanh kéo Scrollbar góp phần cải thiện giao diện trò chơi.

4 ShowScrollBar(hWnd, SB_BOTH, Show);

Hàm resizeConsole()

Hàm có chức năng thay đổi kích thước màn hình Console tùy theo ý tưởng và sự sáng tạo của Lập trình viên.

1 void resizeConsole(int width, int height)

6 MoveWindow(console, r.left, r.top, width, height, TRUE);

File Prepare.h

File Prepare.h chứa khai báo các hàm hỗ trợ cho quá trình chuẩn bị hình thành thức ăn và khởi động lại dữ liệu ở từng level.

File Prepare.cpp

Hàm IsValidLevel1()

Hàm nhận hai đối số là tọa độ được tạo ngẫu nhiên; nếu kết quả là false, hàm sẽ tiếp tục tạo tọa độ mới Ngược lại, nếu kết quả là true, tọa độ của thức ăn tiếp theo sẽ được xác định bởi hai đối số của hàm.

IsValidLevel1() được code dựa trên giao diện của level 1 Các level tiếp theo tồn

Để xử lý các chướng ngại vật trong trò chơi, cần sử dụng hàm IsValidLevel1() và kiểm tra xem tọa độ ngẫu nhiên có trùng với chướng ngại vật hay không, nhằm đảm bảo sự phù hợp cho từng cấp độ.

; case 3: for (int i = 0; i < MAX_SIZE_FOOD; i++) { do { x = rand() % (WIDTH_CONSOLE - 1) + 2; y = rand() % (HEIGH_CONSOLE - 1) + 2;

} break; case 4: for (int i = 0; i < MAX_SIZE_FOOD; i++) { do

Hàm GenerateFood() được sử dụng để tạo ra thức ăn trong trò chơi Tọa độ của thức ăn sẽ được tạo ngẫu nhiên và được kiểm tra xem có trùng với thân rắn hoặc chướng ngại vật hay không Nếu tọa độ hợp lệ, nó sẽ được sử dụng làm tọa độ cho thức ăn.

3 CHAR_LOCK = 'A', MOVING = 'D', FOOD_INDEX = 0, WIDTH_CONSOLE = 90,

Hàm ResetDataLV1()

để tạo ra mảng thức ăn.

File ProcessGame.h

File ProcessGame.h chứa khai báo các hàm hỗ trợ cho việc xử lí con rắn và tạo ra các luồng thực hiện chương trình.

File ProcessGame.cpp

Hàm StartGame()

Hàm StartGame() bao gồm các nhiệm vụ cần làm trước khi vào game chính thức.

25 DrawBoard(1, 1, WIDTH_CONSOLE, HEIGH_CONSOLE); // Draw game

28 LEVELUP = 0; // Not levelup when starting new

- system("cls") được dùng để làm sạch màn hình.

- Hàm SetColor(2) được dùng để thiết lập màu cho giao diện.

- Mỗi level khác nhau sẽ được gọi hàm ResetData() để khởi động lại dữ liệu và hàm DrawWallLevel() để vẽ chướng ngại vật tương ứng.

HEIGH_CONSOLE) dùng để vẽ khung hình chữ nhật cho trò chơi.

- Hàm GenerateFood() dùng để khởi tạo thức ăn.

- Khi STATE = 1, con rắn sẽ được vẽ lên màn hình.

- LEVELUP = 0: Thiết lập level khi bắt đầu game mới

Hàm PauseGame(HANDLE t)

Hàm để người dùng dừng game khi đang chơi

2 { // Draw the save game screen

4 DrawBoard(1, 1, WIDTH_CONSOLE, HEIGH_CONSOLE);

20 cout

Ngày đăng: 05/12/2022, 06:28

HÌNH ẢNH LIÊN QUAN

Xây dựng trò chơi Rắn săn mồi đơn giản với đồ họa là màn hình Console. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
y dựng trò chơi Rắn săn mồi đơn giản với đồ họa là màn hình Console (Trang 4)
- system(&#34;cls&#34;) được dùng để làm sạch màn hình. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
system (&#34;cls&#34;) được dùng để làm sạch màn hình (Trang 19)
HEIGH_CONSOLE) dùng để vẽ khung hình chữ nhật cho trị chơi. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
d ùng để vẽ khung hình chữ nhật cho trị chơi (Trang 20)
- Từ dòng 42 đến dòng 76: lưu game đang chơi, màn hình trị chơi lúc - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
d òng 42 đến dòng 76: lưu game đang chơi, màn hình trị chơi lúc (Trang 23)
- Từ dòng 26 đến dịng 40: in ra màn hình danh sách tên các file - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
d òng 26 đến dịng 40: in ra màn hình danh sách tên các file (Trang 23)
LOADGAME, bao gồm khung màn hình chính – DrawBoard(), khung - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
bao gồm khung màn hình chính – DrawBoard(), khung (Trang 25)
Hàm Menu() có chức năng vẽ màn hình menu sau khi bắt đầu chương trình. Menu gồm 5 phần: - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
m Menu() có chức năng vẽ màn hình menu sau khi bắt đầu chương trình. Menu gồm 5 phần: (Trang 32)
Hàm in ra màn hình Console giao diện thốt khỏi trị chơi khi người dụng chọn mục QUITGAME trong MENU. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
m in ra màn hình Console giao diện thốt khỏi trị chơi khi người dụng chọn mục QUITGAME trong MENU (Trang 33)
Setting, hàm sẽ in từng kí tự của con rắn lên trên màn hình. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
etting hàm sẽ in từng kí tự của con rắn lên trên màn hình (Trang 35)
Hàm thiết lập để vẽ các bảng sau khi người chơi tải lại game đã lưu. - Xây dựng trò chơi rắn săn mồi đơn giản với đồ họa là màn hình console
m thiết lập để vẽ các bảng sau khi người chơi tải lại game đã lưu (Trang 37)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w