سورس بازی پک من به زبان C++
در این بخش سورس بازی پک من به زبان C++ را آماده کرده ایم که در محیط نرم افزار Code::Blocks و زبان برنامه نویسی سی پلاس پلاس نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه اجرا شدن پروژه را مشاهده کنید.
توضیحات پروژه
در این پروژه بعد از اجرا شدن برنامه، توضیحات بازی به همراه یک منوی سه گزینه ای شامل Hard، Normal و Easy برای انتخاب سطح بازی نمایش داده می شود که کاربر با انتخاب یکی از سطح های تعیین شده وارد محیط بازی می شود. بعد از شروع شدن بازی یک موجود از قسمت بالایی نقشه شروع به حرکت می کند تا بازیکن شمار را بخورد. اگه موفق به این کار شود، شما بازی را می بازید. همچنین شما با خوردن نقظه هایی که با حرکت آن موجود ایجاد می شوند، می توانید امتیاز کسب کنید.
بازی پک من (PACMAN) توسط شرکت Namco که یکی از شرکت های بزرگ ژاپنی در حوزه ساخت بازی های رایانه ای است، تولید شده است. این بازی علی رخم داشتن گرافیک حرفه ای هنوز هم آمار دانلود بالایی در فروشگاه هایی مثل Google Play دارد.
شما با مشاهده سورس کد این بازی می توانید با نحوه ساخت بازی های ساده، استفاده از امکانات زبان برنامه نویسی سی پلاس پلاس (مانند رشته، آرایه چند بعدی و غیر) آشنا شده و مهارت برنامه نویسی خودتان را افزایش دهید.
قسمت های از سورس کد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #include <iostream> #include <stdio.h> #include <windows.h> #include <string> #include <vector> using namespace std; char tmp_map[18][32]; char map[18][32] = { "+#############################+", "| |", "| |", "|## ########### ## #########|", "| | |", "| | |### | | | |", "| | | | |### | | | |", "| | #####| | | ## | |", "| | |### | | |", "| |##### ### ## |", "| ###### ####### ###|", "| |", "|# ### #### ### #######|", "| |", "| |", "| |", "| |", "+#############################+" }; void ShowMap() { for (int i = 0; i < 18; i++) { printf("%sn", map[i]); } } void gotoxy(short x, short y) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); COORD position = { x, y }; SetConsoleCursorPosition(hStdout, position); } int main() { bool running = true; int x = 15; // hero x int y = 16; // hero y int old_x; int old_y; int ex = 1; int ey = 1; int pts = 0; printf("Instruction:n1. Arrow Keys to move your heron2. Eat the dots produced by the Eater to gain poinsn3. Don't get caught by the Eaternn"); printf("H -> HardnN -> NormalnE -> EasynnInput : "); char diffi; int speedmod = 3; cin >> diffi; if (diffi == 'N') { speedmod = 2; } else if (diffi == 'H') { speedmod = 1; } system("cls"); ShowMap(); gotoxy(x, y); cout << "H"; int frame = 0; FindPath(ex, ey, x, y); while (running) { gotoxy(x, y); cout << " "; old_x = x; old_y = y; if (GetAsyncKeyState(VK_UP)) { if (map[y - 1][x] == '.') { map[y - 1][x] = ' '; y--; pts++; } else if (map[y - 1][x] == ' ') { y--; } } if (GetAsyncKeyState(VK_DOWN)) { if (map[y + 1][x] == '.') { map[y + 1][x] = ' '; y++; pts++; } else if (map[y + 1][x] == ' ') { y++; } } if (GetAsyncKeyState(VK_LEFT)) { if (map[y][x - 1] == '.') { map[y][x - 1] = ' '; x--; pts++; } else if (map[y][x - 1] == ' ') { x--; } } if (GetAsyncKeyState(VK_RIGHT)) { if (map[y][x + 1] == '.') { map[y][x + 1] = ' '; x++; pts++; } else if (map[y][x + 1] == ' ') { x++; } } if (old_x != x || old_y != y) { FindPath(ex, ey, x, y); } gotoxy(x, y); cout << "H"; map[ey][ex] = '.'; gotoxy(ex, ey); cout << "."; if (frame % speedmod == 0 && walk_queue.size() != 0) { ex = walk_queue.back().x; ey = walk_queue.back().y; walk_queue.pop_back(); } gotoxy(ex, ey); cout << "E"; if (ex == x && ey == y) { break; } gotoxy(32, 18); gotoxy(32, 1); cout << pts; Sleep(100); frame++; } system("cls"); printf("You Lose and your score is : %i", pts); system("pause>nul"); return 0; } |
هیچ نظری ثبت نشده است