《绝地求生2》
最新版本,最强大版本,同时也是最刺激版本的控制台《绝地求生》!
操作说明就不写了,自己领悟。
Here is the code of the second version:
#include <iostream> #include <cstdio> #include <cstring> #include <string.h> #include <stdio.h> #include <cstdlib> #include <stdlib.h> #include <windows.h> #include <time.h> #include <conio.h> using namespace std; const int number_of_kinds_of_normal_weapon = 7; const int number_of_kinds_of_kt_weapon = 3; struct Weapon { string name; int attack; int number_of_bullet; int find; int kind; }; Weapon normal_weapons[number_of_kinds_of_normal_weapon] = { {"M1911", 10, 7, 1, 1}, {"MP5", 20, 25, 2, 1}, {"AK47", 30, 30, 3, 1}, {"S12K", 40, 5, 4, 1}, {"AWM", 50, 5, 5, 1}, {"匕首", 8, 0, 6, 0}, {"平底锅", 20, 0, 7, 0} }; Weapon kt_weapons[number_of_kinds_of_kt_weapon] = { {"大刀", 30, 0, 1, 0}, {"HK416", 35, 20, 2, 1}, {"M82A1", 80, 10, 3, 1} }; struct Player { string name; int hp; Weapon weapon[4]; int weapon_now; int number_of_weapon; string clothes; string hat; string bag; string things[20]; int number_of_things; int max_number_of_things; int juli_safe; int juli_kt; int kill; }; Player self; struct Enemy { int hp; Weapon weapon_now; string clothes; string hat; }; Enemy enemy; int number_of_player; int number_of_handle; int safe_round; bool kt; bool self_run_away; void procedure(); void init(); void mainMenu(); void activityMenu(); void over(); void showSlowly(char[]); int suiJi(); void self_init(); void self_die(); void self_run(); void self_getThings(); void self_daYao(); void self_look(); void self_meet_kt(); void self_meet_enemy(); void self_attack(); void self_runAway(); void self_changeWeapon(); void enemy_init(); void enemy_attack(); int main() { procedure(); return 0; } void procedure() { showSlowly("欢迎来到绝地求生!\n\n"); showSlowly("请输入你的名字(不含空格):"); cin >> self.name; cout << endl; showSlowly("按任意键开始游戏......"); getch(); mainMenu(); } void init() { showSlowly("请输入玩家人数(最多100人,最少10人):"); cin >> number_of_player; if (number_of_player < 10 or number_of_player > 100) { showSlowly("输入错误,系统自动为您更正,玩家人数为100人。\n"); number_of_player = 100; } cout << endl; showSlowly("正在匹配......匹配成功......即将开始! "); kt = false; number_of_handle = 0; safe_round = 5000; self_init(); activityMenu(); } void mainMenu() { system("cls"); cout << " 主菜单" << endl; cout << "####################" << endl; cout << " 1.匹配一把 2.退出" << endl; cout << "####################" << endl; char ch = getch(); if (ch == '1') init(); else if (ch == '2') over(); else mainMenu(); } void activityMenu() { while (number_of_player > 1) { number_of_handle++; system("cls"); showSlowly("距离绝对安全区还有"); cout << self.juli_safe; showSlowly("米!\n\n"); showSlowly("毒圈半径"); cout << safe_round; showSlowly("米!\n\n"); if (kt == true) { showSlowly("距离空投还有"); cout << self.juli_kt; showSlowly("米!\n\n"); if (self.juli_kt == 0) { showSlowly("你已找到空投! ^o^\n\n"); kt = false; int s = suiJi()%10+1; if (s <= 4) { showSlowly("可是空投物资被别人抢了。QwQ\n\n"); }else{ self_meet_kt(); } } } showSlowly("要做什么?\n\n1.跑毒 2.捡东西 3.打药 4.查看状态\n\n"); char ch; do { ch = getch(); }while(not(ch >= '1' and ch <= '4')); if (ch == '4') { do { self_look(); showSlowly("要做什么?\n\n1.跑毒 2.捡东西 3.打药 4.查看状态\n\n"); ch = getch(); }while(ch == '4'); } if (ch == '1') { self_run(); }else if (ch == '2') { self_getThings(); }else if (ch == '3') { self_daYao(); } if (number_of_handle%4 == 0 and safe_round > 500) { safe_round -= 500; showSlowly("毒圈半径减小500米!\n\n"); } if (self.juli_safe > safe_round) { self.hp -= 8; showSlowly("你在毒圈外,hp减少8!\n\n"); if (self.hp <= 0) { self_die(); } } if (number_of_handle == 5) { kt = true; self.juli_kt = 1000; showSlowly("空投已投下!\n\n"); } if (number_of_player > 2) { int s = suiJi()%5+1; number_of_player -= s; if (number_of_player < 2) { number_of_player = 2; } } showSlowly("剩余"); cout << number_of_player; showSlowly("人。\n\n"); system("pause"); } showSlowly("大吉大利,今晚吃鸡!\n\n按任意键返回主菜单......"); getch(); mainMenu(); } void over() { showSlowly("正在退出......"); exit(0); } void showSlowly(char text[]) { int len = strlen(text); for (int i=0; i<len; i++) { cout << text[i]; Sleep(100); } } int suiJi() { srand((unsigned)time(0)); return rand(); } void self_init() { self.bag = "无"; self.clothes = "无"; self.hat = "无"; self.hp = 100; self.juli_kt = 0; self.juli_safe = 4000; self.max_number_of_things = 5; self.number_of_things = 0; self.number_of_weapon = 0; for (int i=0; i<20; i++) { self.things[i] = "无"; } for (int i=0; i<4; i++) { self.weapon[i].name = "无"; self.weapon[i].attack = 0; self.weapon[i].find = 0; self.weapon[i].number_of_bullet = 0; } self.weapon_now = 0; self.kill = 0; } void self_die() { cout << self.name; showSlowly("阵亡!\n\n排名:"); cout << number_of_player+1; showSlowly("\n\n"); showSlowly("再接再厉,下次吃鸡!\n\n按任意键返回主菜单......"); getch(); mainMenu(); } void self_run() { showSlowly("正在跑毒......\n\n"); if (self.juli_safe > 0) { self.juli_safe -= 200; } if (self.juli_kt > 0 and kt == true) { self.juli_kt -= 200; } int s = suiJi()%10+1; if (s <= 4) { self_meet_enemy(); } } void self_getThings() { showSlowly("正在寻找物资......\n\n"); int s; s = suiJi()%10+1; if (s <= 2) { showSlowly("这里没有任何物资!\n\n"); }else{ char ch; showSlowly("发现"); s = suiJi()%17+1; for (int i=0; i<number_of_kinds_of_normal_weapon; i++) { if (normal_weapons[i].find == s) { cout << normal_weapons[i].name; showSlowly("!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { if (normal_weapons[i].kind == 0) { self.weapon[3] = normal_weapons[i]; }else{ bool none = false; for (int j=0; j<3; j++) { if (self.weapon[j].name == "无") { none = true; self.weapon[j] = normal_weapons[i]; self.number_of_weapon++; break; } } if (none == false) { showSlowly("你的武器装备已满,请选择你要丢掉的武器:\n\n"); for (int j=0; j<3; j++) { cout << j+1 << "." << self.weapon[j].name << ' ' << "子弹:" << self.weapon[j].number_of_bullet << endl; } cout << "4.算了吧\n\n"; do { ch = getch(); }while(not(ch >= '1' and ch <= '4')); if (ch == '1') { self.weapon[0] = normal_weapons[i]; }else if (ch == '2') { self.weapon[1] = normal_weapons[i]; }else if (ch == '3') { self.weapon[2] = normal_weapons[i]; } } } showSlowly("装备成功!\n\n"); }else{ showSlowly("你没有拾取。\n\n"); } break; } } if (s == 8) { showSlowly("药!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { if (self.number_of_things == self.max_number_of_things) { showSlowly("背包已满!\n\n是否丢掉某样东西?\n\n"); int i; for (i=0; i<self.number_of_things; i++) { cout << i+1 << '.' << self.things[i] << endl; } cout << i+1 << ".算了吧\n\n"; int cho; do { cin >> cho; }while(not(cho >= 1 and cho <= i+1)); cout << endl; if (cho <= i) { self.things[cho-1] = "药"; showSlowly("拾取成功!\n\n"); } }else{ self.things[self.number_of_things] = "药"; self.number_of_things++; showSlowly("拾取成功!\n\n"); } }else{ showSlowly("你没有拾取。\n\n"); } }else if (s == 9) { showSlowly("一级头盔!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.hat = "一级"; showSlowly("你戴起了一级头盔。\n\n"); } }else if (s == 10) { showSlowly("二级头盔!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.hat = "二级"; showSlowly("你戴起了二级头盔。\n\n"); } }else if (s == 11) { showSlowly("三级头盔!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.hat = "三级"; showSlowly("你戴起了三级头盔。\n\n"); } }else if (s == 12) { showSlowly("一级背包!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.bag = "一级"; self.max_number_of_things = 10; showSlowly("你背起了一级背包。\n\n"); } }else if (s == 13) { showSlowly("二级背包!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.bag = "二级"; self.max_number_of_things = 15; showSlowly("你背起了二级背包。\n\n"); } }else if (s == 14) { showSlowly("三级背包!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.bag = "三级"; self.max_number_of_things = 20; showSlowly("你背起了三级背包。\n\n"); } }else if (s == 15) { showSlowly("一级防弹衣!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.clothes = "一级"; showSlowly("你穿上了一级防弹衣。\n\n"); } }else if (s == 16) { showSlowly("二级防弹衣!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.clothes = "二级"; showSlowly("你穿上了二级防弹衣。\n\n"); } }else if (s == 17) { showSlowly("三级防弹衣!\n\n是否拾取?y/n\n\n"); do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { self.clothes = "三级"; showSlowly("你穿上了三级防弹衣。\n\n"); } } } } void self_daYao() { if (self.hp < 100) { bool find = false; for (int i=0; i<self.number_of_things; i++) { if (self.things[i] == "药") { find = true; showSlowly("正在打药......\n\n你的hp增加了30。\n\n"); self.hp += 30; if (self.hp > 100) { self.hp = 100; } for (int j=i; j<self.number_of_things-1; j++) { self.things[j] = self.things[j+1]; } self.things[self.number_of_things-1] = "无"; self.number_of_things--; break; } } if (find == false) { showSlowly("你没有药!\n\n"); } }else{ showSlowly("hp满不用打药。\n\n"); } } void self_look() { cout << self.name << endl; cout << "生命值:" << self.hp << endl; cout << "武器:"<< endl; if (self.number_of_weapon > 0 or self.weapon[3].name != "无") { for (int i=0; i<self.number_of_weapon; i++) { cout << self.weapon[i].name << ' ' << "子弹:" << self.weapon[i].number_of_bullet << endl; } if (self.weapon[3].name != "无") { cout << self.weapon[3].name << endl; } }else{ cout << "无" << endl; } cout << "防具:" << self.hat << "头盔 " << self.clothes << "防弹衣" << endl; cout << "背包:" << self.bag << "背包" << endl; cout << "物品:" << endl; if (self.number_of_things > 0) { for (int i=0; i<self.number_of_things; i++) { cout << self.things[i] << ' '; if (i%2 == 1) { cout << endl; } } }else{ cout << "无" << endl; } cout << endl; cout << endl; system("pause"); } void self_meet_kt() { showSlowly("空投物资有:\n\n"); int s = suiJi()%3; cout << kt_weapons[s].name << endl; showSlowly("是否拾取?y/n\n\n"); char ch; do { ch = getch(); }while(ch != 'y' and ch != 'n'); if (ch == 'y') { if (kt_weapons[s].kind == 0) { self.weapon[3] = kt_weapons[s]; showSlowly("装备成功!\n\n"); }else{ if (self.number_of_weapon == 3) { showSlowly("你的武器装备满了,请选择你要丢掉的武器:\n\n"); for (int i=0; i<3; i++) { cout << i+1 << '.' << self.weapon[i].name << " 子弹:" << self.weapon[i].number_of_bullet << endl; } cout << "4.算了吧" << endl; do { ch = getch(); }while(not(ch >= '1' and ch <= '4')); if (ch == '4') { showSlowly("你错过了仅有的一个空投哦~\n\n"); }else{ for (int i=0; i<3; i++) { if (ch == i+49) { self.weapon[i] = kt_weapons[s]; break; } } showSlowly("装备成功!\n\n"); } }else{ self.number_of_weapon++; self.weapon[self.number_of_weapon-1] = kt_weapons[s]; showSlowly("装备成功!\n\n"); } } }else{ showSlowly("你错过了仅有的一个空投哦~\n\n"); } } void self_meet_enemy() { showSlowly("发现敌人!\n\n"); self_run_away = false; enemy_init(); while (enemy.hp > 0) { showSlowly("该怎么办?\n\n1.攻击 2.打药 3.逃跑 4.查看状态 5.切换武器\n\n"); char ch; do { ch = getch(); if (ch == '1') { self_attack(); }else if (ch == '2') { self_daYao(); }else if (ch == '3') { self_runAway(); }else if (ch == '4') { self_look(); showSlowly("该怎么办?\n\n1.攻击 2.打药 3.逃跑 4.查看状态 5.切换武器\n\n"); }else if (ch == '5') { self_changeWeapon(); showSlowly("该怎么办?\n\n1.攻击 2.打药 3.逃跑 4.查看状态 5.切换武器\n\n"); } }while(not(ch >= '1' and ch <= '3')); if (self_run_away == true) { break; } if (enemy.hp <= 0) { self.kill++; number_of_player--; showSlowly("你淘汰了一个玩家!\n\n"); cout << self.kill; showSlowly("淘汰\n\n"); break; }else{ enemy_attack(); } if (self.hp <= 0) { break; } } if (self.hp <= 0) { self_die(); } } void self_attack() { if (self.number_of_weapon == 0 and self.weapon[3].name == "无") { showSlowly("你没有武器!\n\n"); }else{ if (self.weapon[self.weapon_now].number_of_bullet == 0 and self.weapon[self.weapon_now].kind == 1) { showSlowly("没子弹了!\n\n"); }else{ cout << self.name; if (self.weapon[self.weapon_now].kind == 1) { showSlowly("开火!\n\n"); int s = suiJi()%10+1; self.weapon[self.weapon_now].number_of_bullet--; if (s <= 6) { showSlowly("命中目标!\n\n"); int temp = enemy.hp; enemy.hp -= self.weapon[self.weapon_now].attack; if (enemy.hat == "一级") { enemy.hp += 5; }else if (enemy.hat == "二级") { enemy.hp += 10; }else if (enemy.hat == "三级") { enemy.hp += 15; } if (enemy.clothes == "一级") { enemy.hp += 2; }else if (enemy.clothes == "二级") { enemy.hp += 5; }else if (enemy.clothes == "三级") { enemy.hp += 7; } if (enemy.hp < 0) { enemy.hp == 0; }else if (enemy.hp > temp) { enemy.hp = temp; } showSlowly("敌人的hp减少了"); cout << temp-enemy.hp; showSlowly("!\n\n"); }else{ showSlowly("没打中!\n\n"); } }else{ showSlowly(":我砍死你!\n\n"); int temp = enemy.hp; enemy.hp -= self.weapon[self.weapon_now].attack; if (enemy.hat == "一级") { enemy.hp += 5; }else if (enemy.hat == "二级") { enemy.hp += 10; }else if (enemy.hat == "三级") { enemy.hp += 15; } if (enemy.clothes == "一级") { enemy.hp += 2; }else if (enemy.clothes == "二级") { enemy.hp += 5; }else if (enemy.clothes == "三级") { enemy.hp += 7; } if (enemy.hp < 0) { enemy.hp == 0; }else if (enemy.hp > temp) { enemy.hp = temp; } showSlowly("敌人的hp减少了"); cout << temp-enemy.hp; showSlowly("!\n\n"); } } } } void self_runAway() { int s = suiJi()%10+1; if (s <= 4) { showSlowly("逃跑成功!\n\n"); self_run_away = true; }else{ showSlowly("逃跑失败,敌人追上来了!\n\n"); } } void self_changeWeapon() { if (self.number_of_weapon == 0 and self.weapon[3].name == "无") { showSlowly("你没有武器!\n\n"); }else{ showSlowly("请选择武器:\n\n"); int s = 0; for (int i=0; i<4; i++) { if (self.weapon[i].name != "无") { s++; cout << s << "." << self.weapon[i].name << " 子弹:" << self.weapon[i].number_of_bullet << endl; } } cout << "\n\n"; int ch; do { cin >> ch; }while(not(ch >= 1 and ch <= s)); s = 0; for (int i=0; i<4; i++) { if (self.weapon[i].name != "无") { s++; if (s == ch) { self.weapon_now = i; showSlowly("切换成功!\n\n"); break; } } } } } void enemy_init() { int s; s = suiJi()%100+1; enemy.hp = s; s = suiJi()%3+1; if (s == 1) { enemy.hat = "三级"; }else if (s == 2) { enemy.hat = "二级"; }else{ enemy.hat = "一级"; } s = suiJi()%3+1; if (s == 1) { enemy.clothes = "三级"; }else if (s == 2) { enemy.clothes = "二级"; }else{ enemy.clothes = "一级"; } s = suiJi()%7; enemy.weapon_now = normal_weapons[s]; s = suiJi()%100+1; enemy.hp = s; cout << "敌人头戴" << enemy.hat << "头盔,身穿" << enemy.clothes << "防弹衣,手持" << enemy.weapon_now.name << "!\n\n"; } void enemy_attack() { if (enemy.weapon_now.name == "匕首") { showSlowly("敌人砍你一刀!\n\n"); }else if (enemy.weapon_now.name == "平底锅") { showSlowly("敌人给你一平底锅!\n\n"); }else{ if (enemy.weapon_now.number_of_bullet > 0) { showSlowly("敌人向你开火!\n\n"); }else{ showSlowly("哈哈,敌人没子弹了!\n\n"); } } if (enemy.weapon_now.kind == 1 and enemy.weapon_now.number_of_bullet > 0) { enemy.weapon_now.number_of_bullet--; int s = suiJi()%10+1; if (s <= 6) { showSlowly("你被击中了!\n\n"); int temp = self.hp; self.hp -= enemy.weapon_now.attack; if (self.hat == "一级") { self.hp += 5; }else if (self.hat == "二级") { self.hp += 10; }else if (self.hat == "三级") { self.hp += 15; } if (self.clothes == "一级") { self.hp += 2; }else if (self.clothes == "二级") { self.hp += 5; }else if (self.clothes == "三级") { self.hp += 7; } if (self.hp < 0) { self.hp == 0; }else if (self.hp > temp) { self.hp = temp; } showSlowly("你的hp减少了"); cout << temp-self.hp; showSlowly("!\n\n"); if (self.hp == 0) { self_die(); } }else{ showSlowly("但是没有击中你。\n\n"); } }else if (enemy.weapon_now.kind == 0){ int temp = self.hp; self.hp -= enemy.weapon_now.attack; if (self.hat == "一级") { self.hp += 5; }else if (self.hat == "二级") { self.hp += 10; }else if (self.hat == "三级") { self.hp += 15; } if (self.clothes == "一级") { self.hp += 2; }else if (self.clothes == "二级") { self.hp += 5; }else if (self.clothes == "三级") { self.hp += 7; } if (self.hp < 0) { self.hp == 0; }else if (self.hp > temp) { self.hp = temp; } showSlowly("你的hp减少了"); cout << temp-self.hp; showSlowly("!\n\n"); if (self.hp == 0) { self_die(); } } }