我是来自B 站的初中生谭某,这是我的第一个作品,于2023年12月24日发布第一个版本,本游戏根据B站作者BigSnakeFrostKay的荒野乱斗同人小说改编
今天我又更了一部分,但仍未全部完成,预计除夕完成全部,除夕的时候请等待我的好消息
做得不好,见谅
以下是程序(因学业原因,暂时有一些缺陷):
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
typedef void (*point)();
int xingbie,rnum,zhangjie=1,bnum,input,boolboss=0,boolstory=1,battle=0;
struct player{
string name;
int b,hp,lev,_b,__b,_hp,bsum,hpsum;
int dunbuff,yunbuff,b_buff,shoushang,chongneng,chongnengsum;
long long exp,expsum,coin;
}p={"玩家",1600,5400,1,0,0,0,5400,1600,0,0,0,0,1,5,0,100,100};
struct brawler{
string name,skill;
int b,hp,chongnengsum;
bool jiesuo;
}h[5]={{"贝尔","雷霆标记",1040,2600,4,1},{"山姆","碎骨指虎",1600,5400,5,1},{"布洛克","摇滚轰炸",1160,2400,6,0},{"P先生","助手出击",1400,2200,5,0},{"巴斯特","蒙太奇",1400,5200,5,0}};
struct boss{
string name,skill;
int b,hp,chongnengsum;
bool jiesuo;
}r[5]={{"小罗","小心地滑",1320,3200,4,0}};
boss shizhuang=r[bnum];
struct xiaoguai{
string name;
int b,hp,dengji;
}robot[3];
struct place{
string name;
bool jiesuo;
}difang[3]={"仓库",1,"机器人工厂",1,"P先生的酒店",0};
struct goods{
string name;
int prize;
string gong;
int sum;
}thing[5]={{"麦克斯饮料",15,"恢复600点生命值",2},{"巴利的酒",30,"恢复1200点生命值",2},{"黑鸦飞刀",20,"减少敌方350点生命值",2},{"佩佩手雷",50,"减少敌方2000点生命值",2},{"道格热狗",40,"恢复1600点生命值",2}};
void enter(){system("pause");system("cls");}
void enter_(){system("pause");}
void m(){cout<<(xingbie?p.name:"山姆");}
void f(){cout<<(xingbie?"贝尔":p.name);}
void expplus(){
int levplus=0;
while(1){
if(p.exp>=p.expsum){
p.exp-=p.expsum;
p.expsum+=50;
p._b+=10;p._hp+=20;p.coin+=50;
p.bsum+=10;p.hpsum+=20;
levplus++;
}
else{
break;
}
}
cout<<p.name;
printf("升%d级!伤害增加%d,血量增加%d,获得金币%d",levplus,levplus*10,levplus*20,levplus*50);
}
void story1(){
system("cls");
cout<<"第一章 机器人造反\n";enter();
cout<<"(战斗过程中,"<<(xingbie?"你(山姆)":"山姆")<<"因忘记自己的指虎损坏而使用指虎使指虎散架)\n\n";Sleep(750);
cout<<"战斗一会儿后,"<<(xingbie?"贝尔":"你(贝尔)")<<"和"<<(xingbie?"你(山姆)":"山姆")<<"躲进了一个仓库\n\n";Sleep(750);
cout<<(xingbie?"你(山姆)":"山姆")<<"(疑惑):这些机器人为什么会失控呢?还把我的指虎给崩掉了。\n\n";enter_();
cout<<(xingbie?"贝尔":"你(贝尔)")<<"的手机: 紧急消息,BS大陆的机器人集体失控,看到机器人的幸存者最好躲起来!\n\n";enter_();
cout<<(xingbie?"贝尔":"你(贝尔)")<<":怎么办,整个BS大陆的机器人都变得异常,况且我们还捅了老窝……\n\n";enter_();
cout<<"???:芜!任何邪恶,终将绳之以法!\n\n";enter_();
cout<<(xingbie?"贝尔":"你(贝尔)")<<"(生气):山姆,这个时候你就别玩梗了,你指虎都没了,再玩梗我们就比它们先一步被绳之以法了!\n\n";enter_();
cout<<(xingbie?"你(山姆)":"山姆")<<":我没说话啊。\n\n";enter_();
cout<<"一个长得像猴子的人(突然出现):芜!是我啦!\n\n";enter_();
cout<<(xingbie?"你(山姆)":"山姆")<<":这位仁兄,请问你是猴吗?\n\n";enter_();
cout<<"猴人:芜!什么猴,我才不是猴,吃我一… \n\n";Sleep(750);
cout<<(xingbie?"你(山姆)":"山姆")<<":(打了猴人一拳)\n\n";enter_();
cout<<"猴人:大哥大哥,我错了,我叫布洛克,我也是因为机器人的失控才逃出来的。\n\n";enter_();
cout<<"(与此同时,机器人砸开了仓库门)\n\n";Sleep(750);
cout<<"(布洛克使用一号随身妙具【火箭助推器】,使三人原地起跳,并轰炸了一片区域破坏了剩余的机器人。)\n\n";enter_();
cout<<"布洛克(开心):跟着音乐节拍舞动吧\n\n";enter_();
cout<<(xingbie?"贝尔":"你(贝尔)")<<":现在还不是舞动的时候,乱斗小镇现在出了乱子,我们必须去查看!\n\n";enter_();
cout<<"布洛克:芜!等等我!\n\n";enter_();
cout<<"(来到小镇,他们看到了破烂不堪的一幕。)\n\n";enter();
cout<<"完成剧情!获得金币*50,经验*10,解锁新角色布洛克,解锁第二章剧情。\n\n";
p.coin+=50;p.exp+=10;h[2].jiesuo=1;zhangjie++;
expplus();
enter();
}
void story2(){
system("cls");
cout<<"第二章 暴力P先生\n";enter();
cout<<"(三人来到充满灾难的小镇。)\n\n";Sleep(750);
m();cout<<":看来不只是工厂的机器人失控了……\n\n";enter_();
f();cout<<":只凭我们三人是掀不起多大的波澜的,况且山姆的指虎已经损坏… \n\n";enter_();
m();cout<<"(佩戴上崭新的碎骨指虎):那个,在我们去小镇的途中我顺便把指虎修好了。\n\n";enter_();
cout<<"(一个机器人出现在";m();cout<<"山姆面前。)\n\n";Sleep(500);
m();cout<<"(交叉拳):Cross!\n\n";Sleep(500);cout<<"机器人被击退。\n\n";
Sleep(500);m();cout<<"还发射出指虎,指虎刺穿了机器人,使机器人无法继续运转。\n\n";Sleep(500);
m();cout<<"(吸回指虎)\n\n";enter_();
cout<<"布洛克(赞赏):芜!这指虎厉害啊,考虑低价卖给我呗?\n\n";enter_();
m();cout<<"(给了布洛克一拳):Hook!\n\n";enter_();
cout<<"一个穿西装的企鹅(出现):三位兄贵救救我!\n\n";enter_();
cout<<"布洛克:嗯?P先生?你不在雪漫大酒店看着你那两个员工跑出来干什么?\n\n";enter_();
cout<<"(P先生是雪漫大酒店的老板兼行李搬运工,因真实姓名不详,所以大家都叫他P先生。)\n\n";Sleep(500);
cout<<"布洛克:不用废话了,我们送你回雪漫大...\n\n";Sleep(500);
cout<<"P先生(愤怒地将行李箱砸在布洛克身上。)\n(策划:日常迫害布洛克。)\n\n";Sleep(750);
cout<<"P先生:我有一个机器人员工在酒店造反,我无奈之下只能逃出来。\n\n";enter_();
m();cout<<"(将事情的经过讲给P先生。)\n\n";Sleep(500);
cout<<"P先生:机器人失控?为什么我不知道这件事?\n\n";enter_();
m();cout<<":现在该考虑的是我们的安全,因为有一群持枪的机器人向我们走来了!\n\n";Sleep(750);
cout<<"(一群持左轮手枪的机器人向他们走来。)\n\n";enter_();
cout<<"布洛克(思维混乱):现在我们怎么办?\n\n";enter_();
cout<<"P先生(拿着一个行李箱狠狠地砸向机器人):你们想知道我是怎么搬运行李的吗?我就是这么搬运行李的!\n\n";enter_();
cout<<"(P先生的行李箱砸毁了无数个机器人。)\n\n";Sleep(500);
cout<<"(随后P先生架设了一个基地,里面钻出了无数个小小P。)\n\n";Sleep(500);
cout<<"P先生:我编程两年半的基地啊,出来吧,小小P大军!\n(策划:小黑籽是吧)\n\n";Sleep(500);
cout<<"(小小P喷射的子弹和P先生扔出的行李箱,轻松把机器人们全部消灭。)\n\n";
cout<<"(众人往雪漫大酒店的方向走。)";enter_();
f();cout<<":老P我记得你还有个员工来着。 \n\n";enter_();
cout<<"P先生(自责):对啊,我怎么把他忘了?我太不称职了,居然把他忘掉了…\n\n";enter_();
f();cout<<":现在不是自责的时候,快去雪漫大酒店!\n\n";Sleep(500);
cout<<"(众人往雪漫大酒店的方向走。)\n\n";enter_();
cout<<"(到了雪漫大酒店,P先生没有管他们,直接冲进酒店,看自己的员工。)\n\n";enter_();
cout<<"P先生:格尔!小罗!\n\n";enter_();
cout<<"(格尔躲在角落里,而小罗却在大闹酒店。)\n\n";enter_();
cout<<"小罗:P先生我要你痛不欲生!我要让你失去雪漫大酒店!\n\n";enter_();
cout<<"P先生(向小罗那边跑去):我去阻止他,你们快去救格尔!小罗,停下你的行为!";enter();
cout<<"完成剧情!获得金币*50,经验*10,解锁新角色P先生,解锁新地方P先生的酒店,遇见新boss小罗,打败小罗后解锁第三章剧情。\n\n";
p.coin+=50;p.exp+=10;h[3].jiesuo=1;boolstory=0;difang[2].jiesuo=1;boolboss=1;zhangjie++;shizhuang=r[0];
expplus();
enter();
}
point story[3]={story1,story2};
int main(){
p.dunbuff=0,p.b_buff=0,p.exp=0,p.yunbuff=0;
p.lev=1,p.expsum=100;
for(int i=1;i<=29;++i){
cout<<"\n\n\n\n\n\n\n Loading......\n ";
for(int j=1;j<=i;++j) cout<<"-";
cout<<"→";
for(int j=1;j<=29-i;++j) cout<<"_";
system("cls");
}
printf("\n\n\n欢迎来到《荒野乱斗-机器人危机!》\n(原作者:BigSnake-FrostKay(FK) 策划兼程序员:禾呈序猿杰瑞)\n\n\n");
Sleep(1000);
printf("月黑风高之下,山姆和贝尔准备返回金臂帮的基地。山姆的指虎已经损坏,要回去修理\n\n\n然而,机器人工厂的机器人突然失控......\n\n\n");
Sleep(1000);
printf("玩家们,你们做好战斗和发掘真相的准备了吗?\n\n\n");
enter();
flag1:
printf("您的性别(输入1:男 输入0:女 性别决定初始角色(男山姆,女贝尔))");
cin>>xingbie;
if(xingbie==1){
p.b=h[1].b,p.hp=h[1].hp,p.chongneng=0,p.chongnengsum=h[1].chongnengsum,p.hpsum=h[1].hp,p.bsum=h[1].b;
rnum=1;
}
else if(xingbie==0){
p.b=h[0].b,p.hp=h[0].hp,p.chongneng=0,p.chongnengsum=h[0].chongnengsum,p.hpsum=h[0].hp,p.bsum=h[0].b;
rnum=0;
}
else{printf("\n\n\n输入错误...");Sleep(1000);system("cls");goto flag1;}
flag2:
system("cls");
printf("\n\n\n您的名字(不超过10字)");
cin>>p.name;
if(p.name.length()<=20){
printf("\n\n\n开始游戏!");
enter();
}
else{
printf("名字超过10字!");
enter();
goto flag2;
}
while(1){
printf("输入你的操作:\n1.查看剧情 2.与本章boss决战 3.移动 4.背包\n5.查看状态 6.查看角色 7.切换角色 8.关于我们\n9.查看作者日志");
cin>>input;
switch(input){
case 1:{
system("cls");
if(boolstory){
if(1<=zhangjie&&zhangjie<=2){
story[zhangjie-1]();
}
else{
cout<<"暂时没有新的剧情...\n\n\n";
enter();
}
}
else{
cout<<"暂时没有剧情,请先打败本章boss或等新版本更新章节\n\n\n";
enter();
}
break;
}
case 2:{
//TODO
break;
}
case 3:{
system("cls");
printf("你要去哪里?\n");
for(int i=0;i<=2;++i){
cout<<i+1<<"."<<difang[i].name<<(difang[i].jiesuo?"\n":"(未解锁)\n");
}
cin>>input;
if(1<=input&&input<=3){
if(difang[input-1].jiesuo){
switch (input) {
case 1:
system("cls");
cout<<"这里是仓库,用金币交换物资,买点什么?\n";
for(int i=0;i<=4;++i){
cout<<i+1<<"、"<<thing[i].name<<"(价格:"<<thing[i].prize<<" "<<thing[i].gong<<"\n";
}
cout<<"其他数字:退出\n";
cin>>input;
if(1<=input&&input<=5){
if(p.coin>=thing[input-1].prize){
thing[input-1].sum++;
p.coin-=thing[input-1].prize;
cout<<thing[input-1].name<<":"<<thing[input-1].sum;
cout<<"\n金币:"<<p.coin<<"\n";
enter();
}
else{
cout<<"金币不足...\n";
enter();
}
}
else{
cout<<"\n\n欢迎下次光临!\n";
enter();
}
break;
case 2:
break;
default:
break;
}
}
else{
cout<<"该区域未解锁...";
enter();
}
}
else{
cout<<"\n\n暂时没有该区域...\n\n";
enter();
}
break;
}
case 4:{
system("cls");
cout<<"金币:"<<p.coin<<"\n";
cout<<"道具:";
for(int i=0;i<=4;i++){
cout<<i+1<<"."<<thing[i].name<<":"<<thing[i].sum<<" ";
}
cout<<"\n\n输入物品对应数字使用物品,输入其他数字返回\n";
cin>>input;
if(1<=input&&input<=5){
if(thing[input-1].sum>0){
switch (input){
case 1:
p.hpsum=(p.hp+p._hp-p.hpsum>=600)?p.hpsum+600:p.hp+p._hp;
thing[0].sum--;
cout<<"血量增加600,麦克斯饮料-1\n\n";
break;
case 2:
p.hpsum=(p.hp+p._hp-p.hpsum>=1200)?p.hpsum+1200:p.hp+p._hp;
thing[1].sum--;
cout<<"血量增加1200,巴利的酒-1\n\n";
break;
case 3:
cout<<"非战斗状态,无法使用该道具\n\n";
break;
case 4:
cout<<"非战斗状态,无法使用该道具\n\n";
break;
case 5:
p.hpsum=(p.hp+p._hp-p.hpsum>=1600)?p.hpsum+1600:p.hp+p._hp;
thing[0].sum--;
cout<<"血量增加1600,道格热狗-1\n\n";
break;
}
}
else cout<<"物品数量不足...\n\n";
}
else{system("cls");break;}
enter();
break;
}
case 5:{
system("cls");
cout<<"你的名字:"<<p.name<<" 使用的英雄:"<<h[rnum].name<<" 技能:"<<h[rnum].skill<<"\n";
printf("等级:%d 经验:%lld/%lld\n",p.lev,p.exp,p.expsum);
cout<<"伤害:"<<p.b<<"+"<<p._b<<"+"<<p.__b<<"="<<p.bsum<<" 伤害加成buff剩余回合:"<<p.b_buff;
cout<<"\n健康值:"<<p.hp<<"+"<<p._hp<<"="<<p.hp+p._hp<<"/"<<p.hpsum<<"\n";
enter();
break;
}
case 8:{
system("cls");
cout<<"感谢帽子们的支持!我们会做得更好!(帽子是FrostKay对粉丝的称呼)\n\n\n";
cout<<"小说原作者:BigSnakeFrostKay 策划/程序:禾呈序猿杰瑞 \n程序部分参与:HomeStarling534(策划的信奥班好朋友)\n\n\n同时,也感谢部分朋友提供的英雄数据!\n\n\n";
enter();
break;
}
default:
printf("\n\n\n输入错误...");
Sleep(750);
system("cls");
break;
}
}
return 0;
}