#include<bits/stdc++.h>
#include<windows.h>
#include<ctime>
#include<iomanip>
using namespace std;
int h=7,m=0;
int hp=20,max_hp=20,hunger=20,max_hunger=20,armor=0;
int player_exp=0,level=0;
int cunzhuang=0,lubaoshi=0,muban=0,yuan_shi=0,hei_yao_shi=0;
int mei_tan=0,tie_ding=0,jin_ding=0,zuanshi=0,mo_ying_yan=0;
int mu_jian=0,shi_jian=0,tie_jian=0,zuan_jian=0,gong=0,jian=0;
int pi_tao=0,pi_xiong=0,pi_tui=0,pi_xue=0;
int tie_tao=0,tie_xiong=0,tie_tui=0,tie_xue=0;
int zuan_tao=0,zuan_xiong=0,zuan_tui=0,zuan_xue=0;
int gong_zuo_tai=0,fu_mo_tai=0,niang_zao_tai=0,xiang_zi=0,shu_jia=0;
int ma=0,ma_kai=0,ma_su=1,ma_tiao=1;
int mo_di=0,mo_ying_long=1,long_dan=0,mo_di_shui_jing=10;
int bao_1=0,bao_2=0,bao_3=0,bao_4=0,bao_5=0,bao_6=0,bao_7=0,bao_8=0,bao_9=0;
int num_1=0,num_2=0,num_3=0,num_4=0,num_5=0,num_6=0,num_7=0,num_8=0,num_9=0;
int yao_shui_1=0,yao_shui_2=0,yao_shui_3=0,yao_shui_4=0,yao_shui_5=0;
int mian_bao=0,niu_pai=0,jin_ping_guo=0,hu_luo_bo=0,ma_ling_shu=0;
void menu();
void plain();
void village();
void forest();
void cave();
void stronghold();
void end();
void look();
void clean();
void wait();
void bag();
void craft();
void enchant();
void brew();
void build();
void trade();
void ride();
void gameover(int i,string s);
void err();
void add_exp(int e);
void check_level();
void use_food();
void add_exp(int e){
player_exp+=e;
check_level();
}
void check_level(){
while(player_exp>=level*10+5){
player_exp-=level*10+5;
level++;
cout<<"升级!当前等级:"<<level<<endl;
Sleep(500);
}
}
void clean(){system("cls");}
void wait(){char x;cout<<"\n按任意键继续…";cin>>x;}
void err(){cout<<"无效选择!";wait();}
void look(){
clean();
cout<<"===== MC生存冒险 ====="<<endl;
cout<<"时间:"<<(h<12?"上午":"下午")<<(h%12==0?12:h%12)<<":"<<setw(2)<<setfill('0')<<m<<endl;
cout<<"生命:"<<hp<<"/"<<max_hp<<" 饱食:"<<hunger<<"/"<<max_hunger<<" 护甲:"<<armor<<endl;
cout<<"经验:"<<player_exp<<" 等级:"<<level<<endl;
cout<<"======================"<<endl;
}
void gameover(int i,string s){
clean();
cout<<"===== 游戏结束 ====="<<endl;
cout<<"结局 "<<i<<":"<<s<<endl;
cout<<"===================="<<endl;
wait();
h=7,m=0,hp=20,max_hp=20,hunger=20,max_hunger=20,armor=0;
player_exp=0,level=0,cunzhuang=0,lubaoshi=0,muban=0,yuan_shi=0,hei_yao_shi=0;
mei_tan=0,tie_ding=0,jin_ding=0,zuanshi=0,mo_ying_yan=0;
mu_jian=0,shi_jian=0,tie_jian=0,zuan_jian=0,gong=0,jian=0;
pi_tao=0,pi_xiong=0,pi_tui=0,pi_xue=0;
tie_tao=0,tie_xiong=0,tie_tui=0,tie_xue=0;
zuan_tao=0,zuan_xiong=0,zuan_tui=0,zuan_xue=0;
gong_zuo_tai=0,fu_mo_tai=0,niang_zao_tai=0,xiang_zi=0,shu_jia=0;
ma=0,ma_kai=0,ma_su=1,ma_tiao=1;
mo_di=0,mo_ying_long=1,long_dan=0,mo_di_shui_jing=10;
bao_1=0,bao_2=0,bao_3=0,bao_4=0,bao_5=0,bao_6=0,bao_7=0,bao_8=0,bao_9=0;
num_1=0,num_2=0,num_3=0,num_4=0,num_5=0,num_6=0,num_7=0,num_8=0,num_9=0;
yao_shui_1=0,yao_shui_2=0,yao_shui_3=0,yao_shui_4=0,yao_shui_5=0;
mian_bao=0,niu_pai=0,jin_ping_guo=0,hu_luo_bo=0,ma_ling_shu=0;
menu();
}
void bag(){
look();
cout<<"【背包】"<<endl;
cout<<"1.木剑:"<<mu_jian<<" 2.石剑:"<<shi_jian<<" 3.铁剑:"<<tie_jian<<" 4.钻石剑:"<<zuan_jian<<endl;
cout<<"5.弓:"<<gong<<" 箭:"<<jian<<" 6.木板:"<<muban<<" 7.原石:"<<yuan_shi<<endl;
cout<<"8.铁锭:"<<tie_ding<<" 9.钻石:"<<zuanshi<<" 0.返回"<<endl;
cout<<"----------------------"<<endl;
cout<<"a.绿宝石:"<<lubaoshi<<" b.末影眼:"<<mo_ying_yan<<" c.工作台:"<<gong_zuo_tai<<endl;
cout<<"d.附魔台:"<<fu_mo_tai<<" e.酿造台:"<<niang_zao_tai<<" f.马:"<<ma<<endl;
int x;cin>>x;
if(x==0)menu();
else bag();
}
void craft(){
look();
cout<<"【合成】"<<endl;
cout<<"1.木板→木剑(4) 2.原石→石剑(3+2木) 3.铁锭→铁剑(2)"<<endl;
cout<<"4.钻石→钻石剑(2) 5.铁→铁镐(3) 6.铁→盔甲(各8)"<<endl;
cout<<"7.钻石→盔甲(各8) 8.工作台(4木) 9.附魔台(书+钻+黑耀)"<<endl;
cout<<"0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(x==1&&muban>=4){muban-=4;mu_jian=1;cout<<"√ 木剑";}
if(x==2&&yuan_shi>=3&&muban>=2){yuan_shi-=3;muban-=2;shi_jian=1;cout<<"√ 石剑";}
if(x==3&&tie_ding>=2){tie_ding-=2;tie_jian=1;cout<<"√ 铁剑";}
if(x==4&&zuanshi>=2){zuanshi-=2;zuan_jian=1;cout<<"√ 钻石剑";}
if(x==5&&tie_ding>=3){tie_ding-=3;cout<<"√ 铁镐";}
if(x==6&&tie_ding>=8){tie_ding-=8;tie_tao=1;tie_xiong=1;tie_tui=1;tie_xue=1;armor+=10;cout<<"√ 铁甲";}
if(x==7&&zuanshi>=8){zuanshi-=8;zuan_tao=1;zuan_xiong=1;zuan_tui=1;zuan_xue=1;armor+=20;cout<<"√ 钻石甲";}
if(x==8&&muban>=4){muban-=4;gong_zuo_tai=1;cout<<"√ 工作台";}
wait();craft();
}
void enchant(){
look();
if(fu_mo_tai==0){cout<<"没有附魔台!";wait();menu();return;}
cout<<"【附魔】等级:"<<level<<endl;
cout<<"1.木剑(5级) 2.石剑(10级) 3.铁剑(15级) 4.钻石剑(20级)"<<endl;
cout<<"5.弓(12级) 6.盔甲(18级) 0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(x==1&&level>=5&&mu_jian){level-=5;cout<<"√ 锋利I";}
if(x==2&&level>=10&&shi_jian){level-=10;cout<<"√ 锋利II";}
if(x==3&&level>=15&&tie_jian){level-=15;cout<<"√ 锋利III";}
if(x==4&&level>=20&&zuan_jian){level-=20;cout<<"√ 锋利IV+火焰附加";}
if(x==5&&level>=12&&gong){level-=12;cout<<"√ 力量III+无限";}
if(x==6&&level>=18&&(tie_tao||zuan_tao)){level-=18;armor+=5;cout<<"√ 保护IV";}
wait();enchant();
}
void brew(){
look();
if(niang_zao_tai==0){cout<<"没有酿造台!";wait();menu();return;}
cout<<"【酿造】烈焰粉:"<<hei_yao_shi<<endl;
cout<<"1.治疗药水 2.力量药水 3.防火药水 4.喷溅药水 0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(hei_yao_shi<1){cout<<"缺烈焰粉!";wait();brew();return;}
hei_yao_shi--;
if(x==1)yao_shui_1+=2;
if(x==2)yao_shui_2+=2;
if(x==3)yao_shui_3+=2;
if(x==4)yao_shui_4+=2;
cout<<"√ 酿造成功";
wait();brew();
}
void build(){
look();
cout<<"【建造】"<<endl;
cout<<"1.放木板 2.放原石 3.拆方块 4.建房子 0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(x==1&&muban>0){muban--;cout<<"√ 放木板";add_exp(1);}
if(x==2&&yuan_shi>0){yuan_shi--;cout<<"√ 放原石";add_exp(1);}
if(x==3){cout<<"√ 拆除";add_exp(2);}
if(x==4&&muban>=20&&yuan_shi>=10){
muban-=20;yuan_shi-=10;
cout<<"🏠 房子建成!可安全过夜";add_exp(50);
}
wait();build();
}
void trade(){
look();
cout<<"【村民交易】绿宝石:"<<lubaoshi<<endl;
cout<<"1.面包×5(1绿) 2.牛排×3(1绿) 3.铁锭×3(2绿)"<<endl;
cout<<"4.钻石×1(5绿) 5.马铠(10绿) 6.附魔书(8绿) 0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(x==1&&lubaoshi>=1){lubaoshi--;mian_bao+=5;cout<<"√ 获得面包";}
if(x==2&&lubaoshi>=1){lubaoshi--;niu_pai+=3;cout<<"√ 获得牛排";}
if(x==3&&lubaoshi>=2){lubaoshi-=2;tie_ding+=3;cout<<"√ 获得铁锭";}
if(x==4&&lubaoshi>=5){lubaoshi-=5;zuanshi++;cout<<"√ 获得钻石";}
if(x==5&&lubaoshi>=10){lubaoshi-=10;ma_kai=1;cout<<"√ 获得马铠";}
wait();trade();
}
void ride(){
look();
if(ma==0){cout<<"没有驯服马!";wait();menu();return;}
cout<<"【骑马】速度:"<<ma_su<<" 跳跃:"<<ma_tiao<<" 马铠:"<<ma_kai<<endl;
cout<<"1.加速 2.跳跃 3.下马 4.穿马铠 0.返回"<<endl;
int x;cin>>x;
if(x==0){menu();return;}
if(x==1){ma_su++;cout<<"√ 速度提升";}
if(x==2){ma_tiao++;cout<<"√ 跳跃提升";}
if(x==3){ma=0;cout<<"√ 下马";}
if(x==4&&ma_kai){cout<<"√ 马铠装备";}
wait();ride();
}
void plain(){
look();
cout<<"【平原】"<<endl;
cout<<"1.去森林 2.去村庄 3.找马 4.原地等待 5.菜单"<<endl;
int x;cin>>x;
if(h>18||h<6){
if(!mu_jian&&!shi_jian&&!tie_jian&&!zuan_jian)
gameover(1,"夜晚无武器,被僵尸杀死");
}
if(x==1)forest();
if(x==2)village();
if(x==3){
srand(time(0));
if(rand()%3==0){ma=1;cout<<"√ 驯服马!";add_exp(10);}
else cout<<"没找到马";
}
if(x==4){m+=30;if(hunger>0&&hp<max_hp)hp++;}
if(x==5)menu();
wait();plain();
}
void forest(){
look();
cout<<"【森林】"<<endl;
cout<<"1.砍树 2.挖矿洞 3.找末影人 4.回平原 5.菜单"<<endl;
int x;cin>>x;
if(x==1){muban+=5;h++;cout<<"√ 获得木板×5";add_exp(5);}
if(x==2)cave();
if(x==3){
srand(time(0));
if(rand()%2==0){mo_ying_yan++;cout<<"√ 获得末影珍珠";add_exp(15);}
else{hp-=3;cout<<"被末影人攻击!";}
}
if(x==4)plain();
if(x==5)menu();
wait();forest();
}
void cave(){
look();
cout<<"【矿洞】"<<endl;
cout<<"1.挖原石 2.挖煤炭 3.挖铁矿 4.挖钻石 5.回森林 6.菜单"<<endl;
int x;cin>>x;
if(x==1){yuan_shi+=10;m+=30;add_exp(5);}
if(x==2){mei_tan+=5;m+=30;add_exp(8);}
if(x==3){tie_ding+=3;h++;add_exp(15);}
if(x==4){
srand(time(0));
if(rand()%5==0){zuanshi++;add_exp(30);cout<<"√ 获得钻石!";}
else cout<<"没挖到钻石";
h++;
}
if(x==5)forest();
if(x==6)menu();
wait();cave();
}
void village(){
look();
cout<<"【村庄】"<<endl;
cout<<"1.搜宝箱 2.交易 3.打铁傀儡 4.回平原 5.菜单"<<endl;
int x;cin>>x;
if(x==1){
srand(time(0));
int r=rand()%8;
if(r==0)muban+=10;
if(r==1)tie_ding+=5;
if(r==2)zuanshi++;
if(r==3)lubaoshi++;
if(r==4)gong=1;
if(r==5)fu_mo_tai=1;
if(r==6)niang_zao_tai=1;
if(r==7)jin_ping_guo++;
cout<<"√ 宝箱开启";add_exp(10);
}
if(x==2)trade();
if(x==3){
if(tie_jian||zuan_jian){
tie_ding+=5;cout<<"√ 击败铁傀儡!";add_exp(20);
}else gameover(2,"被铁傀儡一拳打死");
}
if(x==4)plain();
if(x==5)menu();
wait();village();
}
void stronghold(){
look();
cout<<"【要塞】"<<endl;
cout<<"1.找末地门 2.搜宝箱 3.打蠹虫 4.回平原 5.菜单"<<endl;
int x;cin>>x;
if(x==1){
if(mo_ying_yan>=12){
mo_ying_yan-=12;mo_di=1;
cout<<"✅ 末地传送门激活!准备屠龙!";add_exp(100);
}else cout<<"需要12个末影眼激活!";
}
if(x==2){lubaoshi+=2;fu_mo_tai=1;cout<<"√ 要塞宝箱";}
if(x==3){add_exp(8);cout<<"√ 击败蠹虫";}
if(x==4)plain();
if(x==5)menu();
wait();stronghold();
}
void end(){
look();
if(mo_ying_long==0){
cout<<"【末地】龙已击杀!"<<endl;
cout<<"1.拿龙蛋 2.回主世界 3.菜单"<<endl;
int x;cin>>x;
if(x==1){long_dan=1;cout<<"✅ 获得龙蛋!最终胜利!";add_exp(500);}
if(x==2)plain();
if(x==3)menu();
wait();end();
return;
}
cout<<"【末地】末影龙 HP:"<<mo_ying_long*50<<endl;
cout<<"1.射水晶 2.砍龙 3.喝药水 4.逃跑 5.菜单"<<endl;
int x;cin>>x;
if(x==1&&gong&&jian>0){
jian--;mo_di_shui_jing--;
cout<<"√ 破坏末影水晶!龙无法回血";add_exp(20);
if(mo_di_shui_jing<=0)mo_ying_long=0;
}
if(x==2){
if(zuan_jian)mo_ying_long-=2;
else if(tie_jian)mo_ying_long-=1;
else {hp-=5;cout<<"被龙尾甩中!";}
add_exp(30);
}
if(x==3&&yao_shui_1>0){yao_shui_1--;hp=max_hp;cout<<"√ 治疗";}
if(x==4){mo_di=0;plain();return;}
if(mo_ying_long>0){hp-=4;cout<<"被末影龙攻击!";}
if(hp<=0)gameover(9,"被末影龙杀死");
if(mo_ying_long<=0){
cout<<"🎉 恭喜!末影龙被击败!"<<endl;
add_exp(1000);
wait();
}
wait();end();
}
void menu(){
look();
cout<<"【主菜单】"<<endl;
cout<<"1.平原 2.村庄 3.森林 4.矿洞 5.要塞"<<endl;
cout<<"6.末地 7.背包 8.合成 9.附魔 0.酿造"<<endl;
cout<<"a.建造 b.交易 c.骑马 d.食物 e.退出"<<endl;
char x;cin>>x;
if(x=='1')plain();
if(x=='2')village();
if(x=='3')forest();
if(x=='4')cave();
if(x=='5')stronghold();
if(x=='6'){if(mo_di)end();else{cout<<"未激活末地门!";wait();}}
if(x=='7')bag();
if(x=='8')craft();
if(x=='9')enchant();
if(x=='0')brew();
if(x=='a')build();
if(x=='b')trade();
if(x=='c')ride();
if(x=='e')exit(0);
menu();
}
int main(){
system("chcp 65001");
system("mode con cols=50 lines=30");
clean();
cout<<"======================"<<endl;
cout<<" 我的世界 终极版 "<<endl;
cout<<" 全功能MC生存冒险"<<endl;
cout<<"======================"<<endl;
wait();
menu();
return 0;
}
2 个赞
不如 战斗迷宫2.0, 主要没自由度
彳亍
Minecraft中末影龙是不会甩尾的
乱码
不建议使用 ststem("cls), 闪屏太难看了, 建议是 gotoxy(0,0) 移动光标重新输出覆盖旧的输出
void gotoxy(LL x,LL y){ COORD _={(short)x,(short)y}; HANDLE Q=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(Q,_); the ;}
可以参考 z_z_b_ 的 lg 文章
加在哪里啊
此话题已在最后回复的 15 天后被自动关闭。不再允许新回复。