C++ 冒险游戏 小镇5.4.0

本文介绍了C++编程实现的冒险游戏小镇5.4.0版本更新内容,包括新增远古凶兽技能、修复探险地图存档BUG及部分代码优化。同时预告5.5.0将开始游戏性能优化,但下次更新可能会延迟。提供可存档版和不可存档版代码供玩家选择。
摘要由CSDN通过智能技术生成

小镇5.4.0

没想到,这几天有大把时间
所以就把5.4.0写出来了
这次疫情也快结束了
希望有时间写到6.0吧
从小镇5.5.0开始,要开始对游戏进行优化了
可能下次更新时间会比较久
望理解

更新内容:
1.远古凶兽等怪加入技能
2.修复了探险地图不能存档的BUG
3.小部分代码优化

剧情先不写了哈~~

需要存档版代码的请私聊,谢谢

可存档版

不可存档版

#include<bits/stdc++.h>//头文件
#include<windows.h>//头文件
#include <conio.h>
#include <cstdio>
#include <fstream>
                                      
void xiaozhen();
void  wuqidian();//武器店
void  yaopindian();//药品店
void maoxian();//冒险
void daguai();//大怪
void xiaoguai();//小怪
void shixuepangzi();//嗜血胖子 
void BOOS(); //boos
void zhuangtai();//状态
void ziliao();//资料
void jiangli();//奖励
void tanbao();//探宝
void ronglu();//熔炉
void gongjiangtai();//工匠台
void fenjiecailiao();//奖励分解材料
void jijia(); //制作机甲
void cailiaoshangren();//材料商人
void wuqizhizuo();//武器制作
void juntuanzhaomu();
void start1();//开始界面 
void start2();//开始界面
void shangdian();//商店 
void gongzuoshi();// 
void chenjiu();
void swcd();
void dqcd();
void xcd(); 
void xuefu();
void zhiyewuqi();

char  a[14][100]= {
   "| R资源 X大怪 F小大怪 O入口 0你的位置  H分解材料 @传送门 |",
                   "|                                                        |",
                   "|      |X-R-F|-X--FH-X---X-F-H-F-H--|      |-F|-F--H-|   |",
                   "|      H     |       |              |-F|FH-|  |      |   |",
                   "|      X     |-H--X--|FF-R|     |-F-|  |      |-F--H-|   |",
                   "|      |--R--|       |    |--H-X|      |-F|-H-|      |--@|",
                   "|   O0-|             |R-FF|     |-F-|-F|  |   |-F-H--|   |",
                   "|      F--F|--F-H-F--|     |-F-H|   |     |   |      |   |",
                   "|      X   |      |  |     |        |FH|-F|-H-|-F--H-|   |",
                   "|      H   |-X--R-|-X--F-R-|--F-F--H|  |             |   |",
                   "|      F   |               R           F    HHFFFHFF-|   |",
                   "|      RFRF|X---H---X--F-R-|-X-F-HF-RHF|-FHFH            |",
                   "|                                                        |"};
                      
char  b[14][100]= {
   "|R资源 F小大怪 Q嗜血胖子 H分解材料  G吸血蝙蝠 K路障      |",
                   "|                                                        |",
                   "|      |-FH-FHF-HF-R-RG-F--Q--F-G-F-RFQ-F--GF-RQ-G-H-R   |",
                   "| 返回 F   K                          Q        |     |   |",
                   "|   |  |   HGRR    RGFFF QQRRG ------ R ----GQHQ ----|   |",
                   "|   |  R   G  G-GR GG  F -QGGF ------- -----     ----|   |",
                   "|   O0-|-R-G     | QQ  F --QFF ----------------------|   |",
                   "|      R   GG-G-GR  Q  F HH--- -------    -----------|   |",
                   "|      |   G     |GGR  - RH--- ------ KHHK ----------|   |",
                   "|      Q   H-GRG-R  --G--Q G ------- KRRRRK ---------|   |",
                   "|      F   K               | -----  KRHHHHRK --------|   |",
                   "|      |-H-R-Q-Q-Q-G-Q--G--R ----- KRHHHHHHRK -------|   |",
                   "|                                  怪物宝藏区            |"};
int x=6,y=5,z=6,l=4;
int baoci=0;
int bao=0;

int tj=0,dj=0;
bool xxgj=0,xgj=0,xhs=0,xtk=0,xxj=0;
int shengming=4000,shanghai=1234124312,fangyu=11111,jinbi=999900,jingyan=100,shengmingf=999999999;//主角资料
int Xzj=0;//机甲
int Zzj=0;
int Xsj=0;
int huo=0,jijiubao=5;//药品
int tiekuai=0;//材料
int fenjie=0;//材料
int jingkuai=0;//材料
int yuansujingkuai=0;//材料
int tdjh=0;//天地精华 
int spzx=0;//审判之心 
int bykj=0;
int sy=0,yy=0;
int zhiye=0;
int boosdj=1;
int emzx=0; 
int tsd=0;
int xsd=0;
int spj=0; 

int vip=0;

int c[1000];

int xhp,xsh,xjb,xdj,xfy;//小怪
int dhp,dsh,djb,ddj,dfy;//大怪
int boosHP=30000,boosSH,boosfy;//BOOS

using namespace std;

void dqcd()
{
   
	ifstream infile,infile1;   //输入流
    ofstream outfile,outfile1;   //输出流
 	int i=1; 
    infile.open("存档.txt"); 
    while (!infile.eof()&&i<=33)            // 若未到文件结束一直循环
    {
   
        infile >> c[i];
		i++;            
    } 
    infile1.open("地图.txt");
    i=0;
    for(i=0;!infile1.eof()&&i<=12;i++)            // 若未到文件结束一直循环
    {
   
    	for(int j=0;j<58;j++)
    	{
   
    		if(a[i][j]==' ')
    			;
			else
			infile1 >>a[i][j];
    		
		}
    } 
	tj=c[1];
    dj=c[2];
    xxgj=c[3];
    xgj=c[4];
    xtk=c[5];
    xxj=c[6];
    shengming=c[7];
    shanghai=c[8];
    fangyu=c[9];
    jinbi=c[10];
    jingyan=c[11];
    shengmingf=c[12];
    Xzj=c[13];
    Zzj=c[14];
    Xsj=c[15];
    huo=c[16];
    jijiubao=c[17];
    tiekuai=c[18];
    fenjie=c[19];
    jingkuai=c[20];
    yuansujingkuai=c[21];
    tdjh=c[22];
    spzx=c[23];
    bykj=c[24];
    sy=c[25];
    yy=c[26];
    zhiye=c[27];
    boosdj=c[28];
    xhs=c[29];
    emzx=c[30];
    tsd=c[31];
    xsd=c[32];
    spj=c[33];
}
void swcd()
{
   
	ofstream outfile[3];//创建一个ofstream对象
	ofstream outfile1[3];
    c[1]=tj;
    c[2]=dj;
    c[3]=xxgj;
    c[4]=xgj;
    c[5]=xtk;
    c[6]=xxj;
    c[7]=shengming;
    c[8]=shanghai;
    c[9]=fangyu;
    c[10]=jinbi;
    c[11]=jingyan;
    c[12]=shengmingf;
    c[13]=Xzj;
    c[14]=Zzj;
    c[15]=Xsj;
    c[16]=huo;
    c[17]=jijiubao;
    c[18]=tiekuai;
    c[19]=fenjie;
    c[20]=jingkuai;
    c[21]=yuansujingkuai;
    c[22]=tdjh;
    c[23]=spzx;
    c[24]=bykj;
    c[25]=sy;
    c[26]=yy;
    c[27]=zhiye;
    c[28]=boosdj;
    c[29]=xhs;	
    c[30]=emzx;
    c[31]=tsd;
    c[32]=xsd;
    c[33]=spj;
    outfile[0].open("存档.txt");//创建txt 
    outfile1[0].open("地图.txt");//创建txt 
    for(int i=1;i<=33;i++)
		outfile[0]<<c[i]<<endl;
	for(int i=0;i<=12;i++)
	{
   
		for(int j=0;j<58;j++)
		{
   
			if(a[i][j]==' ')
				;
			else
			    outfile1[0]<<a[i][j]<<endl;
		}
	}
}
int main()
{
   
	system("color F1");
	start1();
	if(zhiye==0)
    	start2();
    system("cls");
    cout<<"千万不能输入字母或特殊符号,探宝WASD移动"<<endl;
    Sleep(1000);
    system("cls");
	xiaozhen();
}
void start1()
{
   
	int f=0;
	cout<<"                           [小镇5.4.0怪物狂欢季]\n";
    cout<<"-------------------------------------------------------------------------------\n" ;
	cout<<"请输入账号(没有请随便输入)";
	string a,b;
	cin>>a;
	cout<<endl<<"请输入密码(没有请随便输入)";
	cin>>b;
	if(a=="波斯顿大龙虾"&&b=="绿色健康小清新")
	{
   
		cout<<">>波斯顿大龙虾<< VIP2 玩家,欢迎你"<<endl;
		vip=2;
	}
	if(a=="@"&&b=="@")
	{
   
		cout<<"尊贵的VIP8玩家"<<endl;
		vip=8;
	} 
	if(a=="MC"&&b=="元气")
	{
   
		cout<<">>MC<< VIP 3 玩家,欢迎你"<<endl;
		vip=3;
	} 
	int l;
	cout<<"输入 1 读取存档"<<endl;	
	cout<<"输入 2 开始新的一局"<<endl;
	cin>>l;
	if(l==1)
	{
   
		dqcd();
		if(zhiye==0&&f==0)
			cout<<"普通玩家你好,检测到你没有存档以为你重新开始一局"<<endl;
		if(vip==2&&zhiye==0) 
		{
   
			cout<<"尊敬的>>波斯顿大龙虾<< VIP2 玩家,检测到当前您没有存档,以为你重新开始一局(VIP2礼包)"<<endl;
			vip=2; 
		}
		if(vip==3&&zhiye==0) 
		{
   
			cout<<"尊敬的>>MC<< VIP3 玩家,检测到当前您没有存档,以为你重新开始一局(VIP3礼包)"<<endl;
			vip=3; 
		}
		Sleep(3000);
	}
	system("cls"); 
}
void start2()
{
   
    cout<<"                           [小镇5.4.0怪物狂欢季]\n";
    cout<<"-------------------------------------------------------------------------------\n" ;
    cout<<"                               请选择职业"<<endl;
    cout<<"                                 1.战士"<<endl
		<<"                        生命:5000  伤害:50  防御:20  "<<endl
		<<"                    技能:MAX斩,对怪造成 伤害*2的 伤害无视防御"<<endl 
		<<"                    注:对BOOS防御有效  但造成 伤害*3 的伤害"<<endl<<endl;
    cout<<"                              2.狂热的血战士"<<endl
		<<"                        生命:4000 伤害:100 防御:10 "<<endl
		<<"                            技能:血神盾,无敌三回合 "<<endl<<endl;
	cout<<"                                  3.天使"<<endl
		<<"                         生命:6000 伤害:60 防御:50"<<endl
		<<"      技能:天使救赎与惩戒,恢复500血,并造成 100*怪物等级 伤害,冷却10回合"<<endl;
    int l;
    cin>>l;
    if(l==1)
    {
   
        shengming=5000,shanghai=50,fangyu=20,jinbi=150,jingyan=100,shengmingf=999999999;//主角资料
        zhiye=1;
        if(vip==3)
        {
   
        	shanghai+=50;
        	fangyu+=60;
        	tiekuai+=50;
        	fenjie+=100;
        	jinbi+=400;
			Xzj=1; 
		}
		if(vip==2)
		{
   
			shanghai+=50;
			fangyu+=50;
			jinbi+=300;
			Xzj=1;
		}
		if(vip==8)
		{
   
			shengming=20000,shanghai=2000,fangyu=2000,jinbi=999900,jingyan=99999,shengmingf=999999999;//主角资料
	        jijiubao=100;
	        Xsj=1;
	        tiekuai=99999;//材料
	        fenjie=5;//材料
	        jingkuai=99999;//材料
	        yuansujingkuai=99999;//材料
	        tdjh=0;
	        spzx=0;
	        tj=1;
	        dj=1;
		}
    }
    else if(l==2) 
    {
   
        shengming=4000,shanghai=100,fangyu=10,jinbi=150,jingyan=0,shengmingf=999999999;//主角资料
        zhiye=2;
        if(vip==3)
        {
   
        	shanghai+=50;
        	fangyu+=60;
        	tiekuai+=50;
        	fenjie+=100;
        	jinbi+=400;
			Xzj=1; 
		}
		if(vip==2)
		{
   
			shanghai+=50;
			fangyu+=50;
			jinbi+=300;
			Xzj=1;
		}
		if(vip==8)
		{
   
			shengming=20000,shanghai=2000,fangyu=2000,jinbi=999900,jingyan=99999,shengmingf=999999999;//主角资料
	        
	        jijiubao=100;
	        Xsj=1;
	        tiekuai=99999;//材料
	        fenjie=5;//材料
	        jingkuai=99999;//材料
	        yuansujingkuai=99999;//材料
	        tdjh=0;
	        spzx=0;
	        tj=1;
	        dj=1;
		}
    }
    else
    {
   
    	shengming=6000,shanghai=60,fangyu=50,jinbi=100,jingyan=0,shengmingf=999999999;//主角资料
        zhiye=3;
        if(vip==3)
        {
   
        	shanghai+=50;
        	fangyu+=60;
        	tiekuai+=50;
        	fenjie+=100;
        	jinbi+=400;
			Xzj=1;  
		}
		if(vip==2)
		{
   
			shanghai+=50;
			fangyu+=50;
			jinbi+=300;
			Xzj=1;
		}
		if(vip==8)
		{
   
			shengming=20000,shanghai=2000,fangyu=2000,jinbi=999900,jingyan=99999,shengmingf=999999999;//主角资料
	        
	        jijiubao=100;
	        Xsj=1;
	        tiekuai=99999;//材料
	        fenjie=5;//材料
	        jingkuai=99999;//材料
	        yuansujingkuai=99999;//材料
	        tdjh=0;
	        spzx=0;
	        tj=1;
	        dj=1;
		}
	}
}
void xiaozhen()
{
   
	swcd();
	int i=0,n=0,l=1;
	while (l)
	{
   
		
		system("cls");
		cout<<"                           [小镇5.4.0怪物狂欢季]\n";
		cout<<"-------------------------------------------------------------------------------\n" ;
		cout<<"输入 1 冒险"<<endl;
		cout<<"输入 2 探宝"<<endl;
		cout<<"输入 3 商店"<<endl;
		cout<<"输入 4 工作室"<<endl;
		cout<<"输入 5 查看自己状态"<<endl;
		cout<<"输入 6 查看游戏资料"<<endl;
		cout<<"输入 7 查看成就"<<endl;
		cout<<"输入 8 存档(没事按按)"<<endl;
		cout<<"输入 0 结束游戏"<<endl;
		cin>>l;
		switch(l)
		{
   
			case 1:
				cout<<"-------------------------------------------------------------------------------\n" ;
				maoxian();
				if(Xzj==2)
				{
   

					shanghai-=300;
					Xzj=1;
				}
				else if(Zzj==2)
				{
   
					shanghai-=500;
					Zzj=1;
				}
                else if(Xsj==2)
                {
   
                    shanghai-=500;
                    Xsj=1;
                }
				if(shengming>shengmingf)
				{
   
					shengming=shengmingf;
					cout<<"机甲增幅已解除"<<endl;
					Sleep(750);
				}
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 2:
				cout<<"-------------------------------------------------------------------------------\n" ;
				tanbao();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 3:
				cout<<"-------------------------------------------------------------------------------\n" ;
				shangdian(); 
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 4:
				cout<<"-------------------------------------------------------------------------------\n" ;
				gongzuoshi();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 5:
				cout<<"-------------------------------------------------------------------------------\n" ;
				zhuangtai();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 6:
				cout<<"-------------------------------------------------------------------------------\n" ;
				ziliao();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break; 
			case 7:
				cout<<"-------------------------------------------------------------------------------\n" ;
				chenjiu();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break; 
			case 8:
				swcd();
				break; 
			case 0:
				swcd();
				break;
			default:
				cout<<"不要乱输入"<<endl;
		}
		if(Xzj==2)
		{
   
			shanghai-=300;
			Xzj=1;
		}
		else if(Zzj==2)
		{
   
			shanghai-=500;
			Zzj=1;
		}
		else if(Xsj==2)
        {
   
            shanghai-=500;
            Xsj=1;
        }
		if(shengming>shengmingf)
		{
   
			shengming=shengmingf;
			cout<<"机甲增幅已解除"<<endl;
			Sleep(750);
		}
		if(shengming<=0)
		{
   
			cout<<"你死了"<<endl;
			return ;
		}
	}
}
void maoxian()
{
   
	int i=0,n=0,l=1,f1=1;
	if(Zzj==1||Xzj==1||Xsj==1)
	{
   
		while(n!=1&&n!=2&&n!=3&&f1)
		{
   
			cout<<"请选择作战机甲"<<endl;
			cout<<"输入 1 选择X原型机"<<endl;
			cout<<"输入 2 选择Z原型机"<<endl;
			cout<<"输入 3 选择X射线机"<<endl;
			cin>>n;
			if(n==1&&Xzj==1)
			{
   
				Xzj=2;
				cout<<"你已选择X原型机"<<endl;
				shengmingf=shengming;
				shengming+=500;
				shanghai+=200;
				f1=0;
				Sleep(750);
			}
			else if(n==2&&Zzj==1)
			{
   
				Zzj=2;
				cout<<"你已选择Z原型机"<<endl;
				shengmingf=shengming;
				shengming+=300;
				shanghai+=500;
				f1=0;
				Sleep(750);
			}
			else if(n==3&&Xsj==1)
			{
   
				Xsj=2;
				cout<<"你已选择X射线机"<<endl;
				shengmingf=shengming;
				shengming+=500;
				shanghai+=700;
				f1=0;
				Sleep(750);
			}
			else
			{
   
				cout<<"请选择有效机甲"<<endl;
				f1=1;
			}
		}
	}
	while(l)
	{
   
		system("cls");
		cout<<"-------------------------------------------------------------------------------\n" ;
		if(baoci>10||jingyan/100>7)
		{
   
			cout<<"*远古骷髅已增强*"<<endl;
		}
		if(baoci>20||jingyan/100>10)
		{
   
			cout<<"*远古骑士已增强*"<<endl;
		}
		cout<<"输入 1 打远古骷髅"<<endl;
		cout<<"输入 2 打远古骑士"<<endl;
		cout<<"输入 3 打远古凶兽"<<endl; 
		cout<<"输入 4 打吸血蝙蝠"<<endl; 
		cout<<"输入 5 打上古异体"<<endl;
		cout<<"输入 0 返回小镇"<<endl;
		cin>>l;
		switch(l)
		{
   
			case 1:
				cout<<"-------------------------------------------------------------------------------\n" ;
				xiaoguai();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 2:
				cout<<"-------------------------------------------------------------------------------\n" ;
				daguai();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 3:
				cout<<"-------------------------------------------------------------------------------\n" ;
				shixuepangzi();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break; 
			case 4:
				cout<<"-------------------------------------------------------------------------------\n" ;
				xuefu();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break; 
			case 5:
				cout<<"-------------------------------------------------------------------------------\n" ;
				BOOS();
				cout<<"-------------------------------------------------------------------------------\n" ;
				break;
			case 0:
				break;
			default:
				cout<<"不要乱输入"<<endl;
				Sleep(750);
				cout<<"-------------------------------------------------------------------------------\n" ;
		} 
	} 
} 
void zhuangtai()
{
   
	system("cls");
	cout<<"你的生命为:"<<shengming<<endl;
	cout<<"你的金币为:"<<"$"<<jinbi<<endl;
	cout<<"你的防御为:"<<fangyu<<endl;
	cout<<"你的伤害为:"<<shanghai<<endl;
	cout<<"你的经验为(100经验=1级):"<<jingyan<<endl;
	cout<<"你的等级为:"<<jingyan/100<<endl;
	cout<<"你拥有的急救包数"<<jijiubao<<endl;
	cout<<"技能MAX斩(无敌,造成2*伤害,boos*3) "<<endl;
	cout<<"分解材料:"<<fenjie<<endl;
	cout<<"铁块:"<<tiekuai<<" 晶块:"<<jingkuai<<" 元素晶块"<<yuansujingkuai<<endl;
	cout<<"天地精华:"<<tdjh<<"   审判之心:"<<spzx<<endl;
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值