小镇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;