0
已解决
陶旭杰
中级光能
中级光能
最近我新推出一款游戏,欢迎大家试玩。
如发现什么BUG或有什么更新建议欢迎大家回答!
我会在回答中找到一个最好的评论采纳,注意,一共是30个豆子哦!
绝对原创,未经作者允许请勿转载(转载!=复制)。
好了,废话不多说,游戏代码在此↓
#include<bits/stdc++.h>
#include<iostream>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
long long n,fff=0,f=1,jihui=3,guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi=1;
int otkg(int n);
int out(string s);
int csh();
bool check(char c);
int gwcs(int k);
string n1;
string cut="版本:2.2 作者:陶旭杰 游戏名称:勇者大陆\n";
string ksjad;
struct WJ{
string name;
long long xue;
string weizhi;
string wuqi;
string fangju;
long long int yzb,tiejian,gongji,fangyu,sudu,buyi,tccq;
string xiezi;
};
struct GW{
string name;
long long int xue,gongji,fangyu,sudu,bh,dl;
};
WJ wj;
GW gw1,gw2;
void wdcsh(){
wj.xue=wj.yzb=wj.gongji=wj.fangyu=0x7f7f7f7f;
wj.gongji=1;
wj.wuqi="屎";
wj.fangju="不祥征兆";
}
int out(string s)
{
for(int i=0;i<s.size();i++)
{
cout<<s[i];
Sleep(50);
}
}
int qp()
{
system("CLS");
}
int csh()
{
wj.xue=100,wj.weizhi="勇者大陆中心广场",wj.fangju="无",wj.wuqi="空手";
wj.yzb=0,wj.tiejian=0,wj.gongji=5,wj.fangyu=0,wj.sudu=1,wj.xiezi="光脚",wj.buyi=0;
wj.tccq=0;
}
int gwcs(int k)
{
if(k==1)
gw1.name="恶魔守卫",gw1.xue=40,gw1.gongji=10,gw1.fangyu=5,gw1.sudu=3,gw1.bh=1,gw1.dl=100;
else if(k==2)
gw2.name="飞龙骑士",gw2.xue=80,gw2.gongji=15,gw2.fangyu=6,gw2.sudu=10,gw2.bh=2,gw2.dl=280;
}
int cuowu(string s,int hanshu()){
if(!jihui){
cut="你的三次输入机会用完了,直接关机!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
}
system("shutdown -s -t 0");
}
else{
cut="连",cut+=s,cut+="都不会输入吗?真傻!你还剩";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<--jihui;Sleep(100);
cut="次输入机会,请珍惜!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
Sleep(500);
qp();
hanshu();
}
}
int yzdlzxgc()
{
cut="你到达了勇者大陆中心广场,这是安全区,也是整个勇者大陆的中心";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
wj.weizhi="勇者大陆中心广场";
}
int zbby()
{
wj.buyi--;
wj.buyi=4;
wj.wuqi="布衣";
cut="你成功穿上了布衣!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
int zbtj()
{
wj.tiejian--;
wj.gongji=10;
wj.wuqi="铁剑";
cut="你成功拿起了铁剑!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
int zbtccq()
{
wj.tccq--;
wj.gongji=25;
wj.wuqi="突刺长枪";
out("你成功拿起了突刺长枪!");
}
int gmtj()
{
if(wj.yzb<50)
{
cut="你的勇者币不够,无法购买铁剑,多赚点勇者币再来吧!\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else if(wj.yzb>=50)
{
wj.yzb-=50;
wj.tiejian++;
cut="你成功购买了铁剑*1!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
}
int gmby()
{
if(wj.yzb<30)
{
cut="你的勇者币不够,无法购买布衣,多赚点勇者币再来吧!\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else if(wj.yzb>=30)
{
wj.yzb-=30;
wj.buyi++;
cut="你成功购买了布衣*1!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
}
int gmtccq()
{
if(wj.yzb<100)
{
cut="你的勇者币不够,无法购买突刺长枪,多赚点勇者币再来吧!\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else if(wj.yzb>=100)
{
wj.yzb-=100;
wj.tccq++;
cut="你成功购买了突刺长枪*1!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
}
int yzsd()
{
wj.weizhi="勇者商店";
cut="你来到了勇者商店\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<"你拥有"<<wj.yzb<<"个勇者币\n\n";
Sleep(1000);
cut="售货员:客人好,看看我的货架吧!\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<"铁剑 50个勇者币\n布衣 30个勇者币\n突刺长枪 100个勇者币\n\n";
cut="客人,你选好了买什么了吗?\n0.不购买任何东西 1.购买铁剑 2.购买布衣 3.购买突刺长枪\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
fff=0;
while(!fff){
if(check('0'))
{
return 0;
}
else if(check('1'))
{
gmtj();fff=1;
}
else if(check('2')){
gmby();fff=1;
}
else if(check('3')){
gmtccq();fff=1;
}
}
/*else{
cuowu("0~3",yzsd);
}*/
}
int siwang()
{
cut="\n你死亡了,将会掉落你身上的所有物品!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
wdcsh();
}
int gj(GW j)
{
cut="\n你与",cut+=j.name,cut+="展开了恶斗!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
int f=1;
for(int i=1;1;i++)
{
cout<<"\n第"<<i<<"回合:";
if(wj.xue<=0)
{
f=0;
break;
}
if(j.xue<=0)
{
break;
}
else{
if(i%2!=0){
cout<<"你使用"<<wj.wuqi<<"击伤了"<<j.name<<wj.gongji-j.fangyu<<"滴血!!!";
j.xue-=(wj.gongji-j.fangyu);
}
else{
cout<<j.name<<"咬了你一口,你受伤了"<<j.gongji-wj.fangyu<<"滴血!!!";
wj.xue-=(j.gongji-wj.fangyu);
}
}
Sleep(1000);
}
if(!f) {
cut="你在与",cut+=j.name,cut+="的战斗中不慎失手";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
siwang();
}
else{
cut="你战胜了";cut+=j.name;cut+="!!!它掉落了";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<j.dl;Sleep(100);
out("个勇者币,然后在第二天复活了\n");
wj.yzb+=j.dl;
gwcs(j.bh);
}
}
int tp(GW j)
{
if(wj.sudu>=j.sudu)
{
cut="逃跑成功!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
return 0;
}
else
{
cut="逃跑失败!!!你只能攻击!!!\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
gj(j);
}
}
int otkg(int n)
{
for(int i=1;i<=n;i++) cout<<' ';
}
int emsl()
{
wj.weizhi="恶魔森林";
cut="\n恶魔守卫向你扑了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
fff=0;
while(!fff){
if(check('1'))
{
gj(gw1);fff=1;
}
else if(check('2'))
{
tp(gw1);fff=1;
}
}
}
int haxg()
{
wj.weizhi="黑暗峡谷";
cut="\n飞龙骑士向你飞了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
fff=0;
while(!fff){
if(check('1'))
{
gj(gw2);fff=1;
}
else if(check('2'))
{
tp(gw2);fff=1;
}
}
}
int prbt(int x)
{
system("color 56");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);puts(" ******* * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" * * ");
otkg(x);puts(" ******** ************ ");
otkg(x);puts(" * ** * * ");
otkg(x);puts(" * **** * * ");
otkg(x);puts(" * ** * ********* ");
otkg(x);puts(" * **** * * * * ");
otkg(x);puts(" * ** * * * * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" ******** ******** ");
otkg(x);puts(" * * * * ");
otkg(x);puts(" * * * * * ");
otkg(x);puts(" * * ******** ");
otkg(x);puts(" 大陆 ");
otkg(x);puts(" 等你来挑战! ");
cout<<"\n\n\n\n\n";
otkg(148);system("PAUSE");
qp();
}
int smyy()
{
wj.weizhi="圣母医院";
cut="你来到了圣母医院!\n你当前血量为:" ;
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<wj.xue<<"/100"<<endl;Sleep(100);
cut="\n医生:勇士,你想回复多少滴血?(1个勇者币1滴血,上限为100)\n你当前拥有勇者币:";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<wj.yzb<<endl;Sleep(100);
cin>>n;
if(n<=wj.yzb){
cut="已为您治疗,你的当前血量为:" ;
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
wj.xue+=n;
wj.yzb-=n;
if(wj.xue>=100)
wj.xue=100;
cout<<wj.xue<<"/100"<<endl;Sleep(100);
}
else{
cut="你的勇者币不够!!!无法治疗!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
}
int yd()
{
cut=wj.name;
cut+="勇士,你现在的位置是";
cut+=wj.weizhi;
cut+=",你想去哪?\n1.勇者大陆中心广场 2.勇者商店 3.恶魔森林 4.圣母医院 5.黑暗峡谷\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
fff=0;
while(!fff){
if(check('1'))
{
yzdlzxgc();fff=1;
}
else if(check('2'))
{
yzsd();fff=1;
}
else if(check('3'))
{
cut="你来到了恶魔森林\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
emsl();fff=1;
}
else if(check('4')){
smyy();fff=1;
}
else if(check('5')){
out("你来到了黑暗峡谷\n");
haxg();fff=1;
}
}
/*else{
cuowu("1~4",yd);
}*/
}
int zbwq()
{
cut="您当前拥有铁剑*";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<wj.tiejian;Sleep(100);
cut="\n布衣*";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<wj.buyi;Sleep(100);
out("\n突刺长枪*");
cout<<wj.tccq;Sleep(100);
cut="\n\n您要装备什么?\n0.不装备 1.装备铁剑 2.装备布衣 3.装备突刺长枪\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}fff=0;
while(!fff){
if(check('0')) return 0;
else if(check('1'))
{
fff=1;
if(wj.tiejian==0)
{
cut="你没有铁剑!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else
{
zbtj();
}
}
else if(check('2')){
fff=1;
if(wj.buyi==0)
{
cut="你没有布衣!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else
{
zbby();
}
}
else if(check('3')){fff=1;
if(wj.tccq==0)
{
cut="你没有突刺长枪!!!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else
{
zbtccq();
}
}
/*else{
cuowu("0~3",zbwq);
}*/}
}
int zt()
{
int x=70;
system("color CF");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);cout<<wj.name<<"勇士的状态:\n";
otkg(x);cout<<"血量:"<<wj.xue<<"/100"<<endl;
otkg(x);cout<<"武器:"<<wj.wuqi<<endl;
otkg(x);cout<<"防具:"<<wj.fangju<<endl;
otkg(x);cout<<"鞋子:"<<wj.xiezi<<endl;
otkg(x);cout<<"位置:"<<wj.weizhi<<endl;
otkg(x);cout<<"勇者币:"<<wj.yzb<<endl;
otkg(x);cout<<"攻击力:"<<wj.gongji<<endl;
otkg(x);cout<<"防御力:"<<wj.fangyu<<endl;
otkg(x);cout<<"速度:"<<wj.sudu<<endl;
otkg(148);system("PAUSE");
}
int dhnn()
{
if(f){
cut=wj.name;
cut+=",看你是一个新手,我把我的全部家当都给你吧!这是50个勇者币,请收下!";
wj.yzb+=50,f=0;
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cut="\n\n老奶奶把她的全部家当给你后,突然晕倒,死了……";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
else{
cut="我已经死了,你不要再来打扰我了!";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
}
}
int yzdldh1()
{
cut="1.慈祥的老奶奶\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
fff=0;
while(!fff){
if(check('1'))
{
dhnn();
fff=1;
}
}
/*else if(check('2'))
{
dhtf();
}*/
}
int yzsddh2()
{
}
int dh(string df)
{
if(df=="勇者大陆中心广场")
{
cut="你要跟谁对话?\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
yzdldh1();
}
else if(df=="勇者商店")
{
cut="你要跟谁对话?\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
yzsddh2();
}
}
int yzzt()
{
system("color 9F");
cut=wj.name;
cut+="勇士,你现在想干什么?\n1.移动 2.装备武器或防具 3.查看当前状态 4.对话\n";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}fff=0;
while(!fff){
if(check('1'))
{
yd();fff=1;
}
else if(check('2'))
{
zbwq();fff=1;
}
else if(check('3'))
{
zt();fff=1;
}
else if(check('4'))
{
dh(wj.weizhi);fff=1;
}
/*else{
cuowu("1~4",yzzt);
}*/
}
Sleep(1000);
qp();
yzzt();
}
int main()
{
system("title 勇者大陆");
system("mode con cols=1100 lines=1100");
cut+="2.2版本更新:1.新增加渲染效果!2.修复了一些已知的BUG。\n";
wdcsh();
gwcs(1);
gwcs(2);
if(!guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi){
for(int i=1;i<=100;i++)
{
cout<<"游戏正在为您拼命加载中,已成功加载:";
cout<<i<<"%";
Sleep(5);
qp();
}
string jhd[2]={"正在加载资源...","正在加载资源"};
for(int i=1,jhds=0;i<=4;i++,jhds=1-jhds)
{
cout<<jhd[jhds];
Sleep(1000);
system("CLS");
}
}
cout<<"游戏加载完毕,即将开始游戏!!!\n";
Sleep(1000);
system("CLS");
prbt(70);
system("color E4");
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
system("PAUSE");
cout<<"\n\n";
cut="开始游戏!!!\n";
out(cut);
out("这是一个勇者的大陆,勇士啊,拿起你的武器,成为这片大陆的王者吧!!!\n");
out("勇士,请你留下你的名字吧:");
cin>>wj.name;
qp();
yzzt();
return 0;
}
bool check(char c){
if(KEY_DOWN(c)) return true;
else return false;
}
陶旭杰在2019-08-10 21:00:22追加了内容
谢谢各位的评论,真的非常感谢!
2.3版本来了!
#include<bits/stdc++.h>
#include<iostream>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
long long n,fff=0,f=1,jihui=3,guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi=1;
int otkg(int n);
int out(string s);
int csh();
bool check(char c);
int gwcs(int k);
string n1;
string cut="版本:2.3 作者:陶旭杰 游戏名称:勇者大陆\n";
string ksjad;
struct WJ{
string name;
long long xue;
string weizhi;
string wuqi;
string fangju;
long long int yzb,tiejian,gongji,fangyu,sudu,buyi,tccq;
string xiezi;
};
struct GW{
string name;
long long int xue,gongji,fangyu,sudu,bh,dl;
};
WJ wj;
GW gw1,gw2;
int out(string s)
{
for(int i=0;i<s.size();i++)
{
cout<<s[i];
Sleep(25);
}
}
int qp()
{
system("CLS");
}
int csh()
{
wj.xue=100,wj.weizhi="勇者大陆中心广场",wj.fangju="赤身裸体",wj.wuqi="拳头";
wj.yzb=0,wj.tiejian=0,wj.gongji=5,wj.fangyu=0,wj.sudu=1,wj.xiezi="光脚",wj.buyi=0;
wj.tccq=0;
}
int gwcs(int k)
{
if(k==1)
gw1.name="恶魔守卫",gw1.xue=40,gw1.gongji=10,gw1.fangyu=5,gw1.sudu=3,gw1.bh=1,gw1.dl=100;
else if(k==2)
gw2.name="飞龙骑士",gw2.xue=80,gw2.gongji=15,gw2.fangyu=6,gw2.sudu=10,gw2.bh=2,gw2.dl=280;
}
int cuowu(string s,int hanshu()){
if(!jihui){
cut="你的三次输入机会用完了,直接关机!";
out(cut);
system("shutdown -s -t 0");
}
else{
cut="连",cut+=s,cut+="都不会输入吗?真傻!你还剩";
out(cut);
cout<<--jihui;Sleep(50);
cut="次输入机会,请珍惜!!!";
out(cut);
Sleep(500);
qp();
hanshu();
}
}
int yzdlzxgc()
{
cut="你到达了勇者大陆中心广场,这是安全区,也是整个勇者大陆的中心";
out(cut);
wj.weizhi="勇者大陆中心广场";
}
int zbby()
{
wj.buyi--;
wj.buyi=4;
wj.wuqi="布衣";
cut="你成功穿上了布衣!";
out(cut);
}
int zbtj()
{
wj.tiejian--;
wj.gongji=10;
wj.wuqi="铁剑";
cut="你成功拿起了铁剑!";
out(cut);
}
int zbtccq()
{
wj.tccq--;
wj.gongji=25;
wj.wuqi="突刺长枪";
out("你成功拿起了突刺长枪!");
}
int gmtj()
{
if(wj.yzb<50)
{
cut="你的勇者币不够,无法购买铁剑,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=50)
{
wj.yzb-=50;
wj.tiejian++;
cut="你成功购买了铁剑*1!!!";
out(cut);
}
}
int gmby()
{
if(wj.yzb<30)
{
cut="你的勇者币不够,无法购买布衣,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=30)
{
wj.yzb-=30;
wj.buyi++;
cut="你成功购买了布衣*1!!!";
out(cut);
}
}
int gmtccq()
{
if(wj.yzb<100)
{
cut="你的勇者币不够,无法购买突刺长枪,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=100)
{
wj.yzb-=100;
wj.tccq++;
cut="你成功购买了突刺长枪*1!!!";
out(cut);
}
}
int yzsd()
{
wj.weizhi="勇者商店";
cut="你来到了勇者商店\n";
out(cut);
cout<<"你拥有"<<wj.yzb<<"个勇者币\n\n";
Sleep(1000);
cut="售货员:客人好,看看我的货架吧!\n";
out(cut);
cout<<"铁剑 50个勇者币\n布衣 30个勇者币\n突刺长枪 100个勇者币\n\n";
cut="客人,你选好了买什么了吗?\n0.不购买任何东西 1.购买铁剑 2.购买布衣 3.购买突刺长枪\n";
out(cut);
fff=0;
while(!fff){
if(check('0'))
{
return 0;
}
else if(check('1'))
{
gmtj();fff=1;
}
else if(check('2')){
gmby();fff=1;
}
else if(check('3')){
gmtccq();fff=1;
}
}
/*else{
cuowu("0~3",yzsd);
}*/
}
int siwang()
{
cut="\n你死亡了,将会掉落你身上的所有物品!!!";
out(cut);
csh();
}
int gj(GW j)
{
cut="\n你与",cut+=j.name,cut+="展开了恶斗!!!\n你是否跳过对战过程?\n1.是 2否";
out(cut);
int oo=0;
while(1){
if(check('1')){
break;
}
else if(check('2')){
oo=1;
break;
}
}
int f=1;
for(int i=1;1;i++)
{
if(oo)cout<<"\n第"<<i<<"回合:";
if(wj.xue<=0)
{
f=0;
break;
}
if(j.xue<=0)
{
break;
}
else{
if(i%2!=0){
if(oo)cout<<"你使用"<<wj.wuqi<<"击伤了"<<j.name<<wj.gongji-j.fangyu<<"滴血!!!";
j.xue-=(wj.gongji-j.fangyu);
}
else{
if(oo)cout<<j.name<<"咬了你一口,你受伤了"<<j.gongji-wj.fangyu<<"滴血!!!";
wj.xue-=(j.gongji-wj.fangyu);
}
}
if(oo) Sleep(1000);
}
if(!f) {
cut="你在与",cut+=j.name,cut+="的战斗中不慎失手";
out(cut);
siwang();
}
else{
cut="你战胜了";cut+=j.name;cut+="!!!它掉落了";
out(cut);
cout<<j.dl;Sleep(100);
out("个勇者币,然后在第二天复活了\n");
wj.yzb+=j.dl;
gwcs(j.bh);
}
}
int tp(GW j)
{
if(wj.sudu>=j.sudu)
{
cut="逃跑成功!!!";
out(cut);
return 0;
}
else
{
cut="逃跑失败!!!你只能攻击!!!\n";
out(cut);
gj(j);
}
}
int otkg(int n)
{
for(int i=1;i<=n;i++) cout<<' ';
}
int emsl()
{
wj.weizhi="恶魔森林";
cut="\n恶魔守卫向你扑了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
gj(gw1);fff=1;
}
else if(check('2'))
{
tp(gw1);fff=1;
}
}
}
int haxg()
{
wj.weizhi="黑暗峡谷";
cut="\n飞龙骑士向你飞了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
gj(gw2);fff=1;
}
else if(check('2'))
{
tp(gw2);fff=1;
}
}
}
int prbt(int x)
{
system("color 56");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);puts(" ******* * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" * * ");
otkg(x);puts(" ******** ************ ");
otkg(x);puts(" * ** * * ");
otkg(x);puts(" * **** * * ");
otkg(x);puts(" * ** * ********* ");
otkg(x);puts(" * **** * * * * ");
otkg(x);puts(" * ** * * * * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" ******** ******** ");
otkg(x);puts(" * * * * ");
otkg(x);puts(" * * * * * ");
otkg(x);puts(" * * ******** ");
otkg(x);puts(" 大陆 ");
otkg(x);puts(" 等你来挑战! ");
cout<<"\n\n\n\n\n";
otkg(148);system("PAUSE");
qp();
}
int smyy()
{
wj.weizhi="圣母医院";
cut="你来到了圣母医院!\n你当前血量为:" ;
out(cut);
cout<<wj.xue<<"/100"<<endl;Sleep(100);
cut="\n医生:勇士,你想回复多少滴血?(1个勇者币1滴血,上限为100)\n你当前拥有勇者币:";
out(cut);
cout<<wj.yzb<<endl;Sleep(100);
cin>>n;
if(n<=wj.yzb){
cut="已为您治疗,你的当前血量为:" ;
out(cut);
wj.xue+=n;
wj.yzb-=n;
if(wj.xue>=100)
wj.xue=100;
cout<<wj.xue<<"/100"<<endl;Sleep(100);
}
else{
cut="你的勇者币不够!!!无法治疗!!!";
out(cut);
}
}
int yd()
{
cut=wj.name;
cut+="勇士,你现在的位置是";
cut+=wj.weizhi;
cut+=",你想去哪?\n1.勇者大陆中心广场 2.勇者商店 3.恶魔森林 4.圣母医院 5.黑暗峡谷\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
yzdlzxgc();fff=1;
}
else if(check('2'))
{
yzsd();fff=1;
}
else if(check('3'))
{
cut="你来到了恶魔森林\n";
out(cut);
emsl();fff=1;
}
else if(check('4')){
smyy();fff=1;
}
else if(check('5')){
out("你来到了黑暗峡谷\n");
haxg();fff=1;
}
}
/*else{
cuowu("1~4",yd);
}*/
}
int zbwq()
{
cut="您当前拥有铁剑*";
out(cut);
cout<<wj.tiejian;Sleep(100);
cut="\n布衣*";
for(int i=0;i<cut.size();i++)
{
cout<<cut[i];
Sleep(100);
}
cout<<wj.buyi;Sleep(100);
out("\n突刺长枪*");
cout<<wj.tccq;Sleep(100);
cut="\n\n您要装备什么?\n0.不装备 1.装备铁剑 2.装备布衣 3.装备突刺长枪\n";
out(cut);
fff=0;
while(!fff){
if(check('0')) return 0;
else if(check('1'))
{
fff=1;
if(wj.tiejian==0)
{
cut="你没有铁剑!!!";
out(cut);
}
else
{
zbtj();
}
}
else if(check('2')){
fff=1;
if(wj.buyi==0)
{
cut="你没有布衣!!!";
out(cut);
}
else
{
zbby();
}
}
else if(check('3')){fff=1;
if(wj.tccq==0)
{
cut="你没有突刺长枪!!!";
out(cut);
}
else
{
zbtccq();
}
}
/*else{
cuowu("0~3",zbwq);
}*/}
}
int zt()
{
int x=70;
system("color CF");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);cout<<wj.name<<"勇士的状态:\n";
otkg(x);cout<<"血量:"<<wj.xue<<"/100"<<endl;
otkg(x);cout<<"武器:"<<wj.wuqi<<endl;
otkg(x);cout<<"防具:"<<wj.fangju<<endl;
otkg(x);cout<<"鞋子:"<<wj.xiezi<<endl;
otkg(x);cout<<"位置:"<<wj.weizhi<<endl;
otkg(x);cout<<"勇者币:"<<wj.yzb<<endl;
otkg(x);cout<<"攻击力:"<<wj.gongji<<endl;
otkg(x);cout<<"防御力:"<<wj.fangyu<<endl;
otkg(x);cout<<"速度:"<<wj.sudu<<endl;
otkg(148);system("PAUSE");
}
int dhnn()
{
if(f){
cut=wj.name;
cut+=",看你是一个新手,我把我的全部家当都给你吧!这是50个勇者币,请收下!";
wj.yzb+=50,f=0;
out(cut);
cut="\n\n老奶奶把她的全部家当给你后,突然晕倒,死了……";
out(cut);
}
else{
cut="我已经死了,你不要再来打扰我了!";
out(cut);
}
}
int yzdldh1()
{
cut="1.慈祥的老奶奶\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
dhnn();
fff=1;
}
}
/*else if(check('2'))
{
dhtf();
}*/
}
int yzsddh2()
{
}
int dh(string df)
{
if(df=="勇者大陆中心广场")
{
cut="你要跟谁对话?\n";
out(cut);
yzdldh1();
}
else if(df=="勇者商店")
{
cut="你要跟谁对话?\n";
out(cut);
yzsddh2();
}
}
int yzzt()
{
system("color 9F");
cut=wj.name;
cut+="勇士,你现在想干什么?\n1.移动 2.装备武器或防具 3.查看当前状态 4.对话\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
yd();fff=1;
}
else if(check('2'))
{
zbwq();fff=1;
}
else if(check('3'))
{
zt();fff=1;
}
else if(check('4'))
{
dh(wj.weizhi);fff=1;
}
/*else{
cuowu("1~4",yzzt);
}*/
}
Sleep(1000);
qp();
yzzt();
}
int main()
{
system("title 勇者大陆");
system("mode con cols=1100 lines=1100");
cut+="2.3版本更新:1.优化了对战系统。2.对话速度加快。\n";
csh();
gwcs(1);
gwcs(2);
if(!guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi){
for(int i=1;i<=100;i++)
{
cout<<"游戏正在为您拼命加载中,已成功加载:";
cout<<i<<"%";
Sleep(5);
qp();
}
string jhd[2]={"正在加载资源...","正在加载资源"};
for(int i=1,jhds=0;i<=4;i++,jhds=1-jhds)
{
cout<<jhd[jhds];
Sleep(1000);
system("CLS");
}
}
cout<<"游戏加载完毕,即将开始游戏!!!\n";
Sleep(1000);
system("CLS");
prbt(70);
system("color E4");
out(cut);
system("PAUSE");
cout<<"\n\n";
cut="开始游戏!!!\n";
out(cut);
out("这是一个勇者的大陆,勇士啊,拿起你的武器,成为这片大陆的王者吧!!!\n");
out("勇士,请你留下你的名字吧:");
cin>>wj.name;
qp();
yzzt();
return 0;
}
bool check(char c){
if(KEY_DOWN(c)) return true;
else return false;
}
陶旭杰在2019-08-11 12:40:18追加了内容
2.4版本上线!
#include<bits/stdc++.h>
#include<iostream>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
long long n,fff=0,f=1,jihui=3,guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi=0;
int otkg(int n);
int out(string s);
int csh();
bool check(char c);
int gwcs(int k);
string n1;
string cut="版本:2.4 作者:陶旭杰 游戏名称:勇者大陆\n";
string ksjad;
struct WJ{
string name;
long long xue;
string weizhi;
string wuqi;
string fangju;
long long int yzb,tiejian,gongji,fangyu,sudu,buyi,tccq,buxie;
string xiezi;
};
struct GW{
string name;
long long int xue,gongji,fangyu,sudu,bh,dl;
};
WJ wj;
GW gw1,gw2;
int out(string s)
{
for(int i=0;i<s.size();i++)
{
cout<<s[i];
Sleep(25);
}
}
int qp()
{
system("CLS");
}
int csh()
{
wj.xue=100,wj.weizhi="勇者大陆中心广场",wj.fangju="赤身裸体",wj.wuqi="拳头";
wj.yzb=0,wj.tiejian=0,wj.gongji=5,wj.fangyu=0,wj.sudu=1,wj.xiezi="光脚",wj.buyi=0;
wj.tccq=0;
}
int gwcs(int k)
{
if(k==1)
gw1.name="恶魔守卫",gw1.xue=40,gw1.gongji=10,gw1.fangyu=5,gw1.sudu=3,gw1.bh=1,gw1.dl=100;
else if(k==2)
gw2.name="飞龙骑士",gw2.xue=80,gw2.gongji=15,gw2.fangyu=6,gw2.sudu=10,gw2.bh=2,gw2.dl=280;
}
int cuowu(string s,int hanshu()){
if(!jihui){
cut="你的三次输入机会用完了,直接关机!";
out(cut);
system("shutdown -s -t 0");
}
else{
cut="连",cut+=s,cut+="都不会输入吗?真傻!你还剩";
out(cut);
cout<<--jihui;Sleep(50);
cut="次输入机会,请珍惜!!!";
out(cut);
Sleep(500);
qp();
hanshu();
}
}
int yzdlzxgc()
{
cut="你到达了勇者大陆中心广场,这是安全区,也是整个勇者大陆的中心";
out(cut);
wj.weizhi="勇者大陆中心广场";
}
int zbby()
{
wj.buyi--;
wj.fangyu=3;
wj.fangju="布衣";
cut="你成功穿上了布衣!";
out(cut);
}
int zbtj()
{
if(wj.wuqi=="突刺长枪") wj.tccq++;
wj.tiejian--;
wj.gongji=10;
wj.wuqi="铁剑";
cut="你成功拿起了铁剑!";
out(cut);
}
int zbtccq()
{
wj.tccq--;
wj.gongji=25;
wj.wuqi="突刺长枪";
out("你成功拿起了突刺长枪!");
}
int gmtj()
{
if(wj.yzb<50)
{
cut="你的勇者币不够,无法购买铁剑,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=50)
{
wj.yzb-=50;
wj.tiejian++;
cut="你成功购买了铁剑*1!!!";
out(cut);
}
}
int gmby()
{
if(wj.yzb<30)
{
cut="你的勇者币不够,无法购买布衣,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=30)
{
wj.yzb-=30;
wj.buyi++;
cut="你成功购买了布衣*1!!!";
out(cut);
}
}
int gmtccq()
{
if(wj.yzb<100)
{
cut="你的勇者币不够,无法购买突刺长枪,多赚点勇者币再来吧!\n";
out(cut);
}
else if(wj.yzb>=100)
{
wj.yzb-=100;
wj.tccq++;
cut="你成功购买了突刺长枪*1!!!";
out(cut);
}
}
void gmbx(){
if(wj.yzb<30)
{
cut="你的勇者币不够,无法购买布鞋,多赚点勇者币再来吧!\n";
out(cut);
}
else
{
wj.yzb-=30;
wj.buxie++;
cut="你成功购买了布鞋*1!!!";
out(cut);
}
}
int yzsd()
{
wj.weizhi="勇者商店";
cut="你来到了勇者商店\n";
out(cut);
cout<<"你拥有"<<wj.yzb<<"个勇者币\n\n";
Sleep(1000);
cut="售货员:客人好,看看我的货架吧!\n";
out(cut);
cout<<"铁剑 50个勇者币\n布衣 30个勇者币\n突刺长枪 100个勇者币\n布鞋 30个勇者币\n\n";
cut="客人,你选好了买什么了吗?\n0.不购买任何东西 1.购买铁剑 2.购买布衣 3.购买突刺长枪 4.购买布鞋 \n";
out(cut);
fff=0;
while(!fff){
if(check('0'))
{
return 0;
}
else if(check('1'))
{
gmtj();fff=1;
}
else if(check('2')){
gmby();fff=1;
}
else if(check('3')){
gmtccq();fff=1;
}
else if(check('4')){
gmbx();fff=1;
}
}
/*else{
cuowu("0~3",yzsd);
}*/
}
int siwang()
{
cut="\n你死亡了,将会掉落你身上的所有物品!!!";
out(cut);
csh();
}
int gj(GW j)
{
cut="\n你与",cut+=j.name,cut+="展开了恶斗!!!\n你是否跳过对战过程?\n1.是 2否\n";
out(cut);
int oo=0;
while(1){
if(check('1')){
break;
}
else if(check('2')){
oo=1;
break;
}
}
int f=1;
for(int i=1;1;i++)
{
if(oo)cout<<"\n第"<<i<<"回合:";
if(wj.xue<=0)
{
f=0;
break;
}
if(j.xue<=0)
{
break;
}
else{
if(i%2!=0){
if(oo)cout<<"你使用"<<wj.wuqi<<"击伤了"<<j.name<<wj.gongji-j.fangyu<<"滴血!!!";
j.xue-=(wj.gongji-j.fangyu);
}
else{
if(oo)cout<<j.name<<"咬了你一口,你受伤了"<<j.gongji-wj.fangyu<<"滴血!!!";
wj.xue-=(j.gongji-wj.fangyu);
}
}
if(oo) Sleep(1000);
}
if(!f) {
cut="你在与",cut+=j.name,cut+="的战斗中不慎失手";
out(cut);
siwang();
}
else{
cut="你战胜了";cut+=j.name;cut+="!!!它掉落了";
out(cut);
cout<<j.dl;Sleep(100);
out("个勇者币,然后在第二天复活了\n");
wj.yzb+=j.dl;
gwcs(j.bh);
}
}
int tp(GW j)
{
if(wj.sudu>=j.sudu)
{
cut="逃跑成功!!!";
out(cut);
return 0;
}
else
{
cut="逃跑失败!!!你只能攻击!!!\n";
out(cut);
gj(j);
}
}
int otkg(int n)
{
for(int i=1;i<=n;i++) cout<<' ';
}
int emsl()
{
wj.weizhi="恶魔森林";
cut="\n恶魔守卫向你扑了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
gj(gw1);fff=1;
}
else if(check('2'))
{
tp(gw1);fff=1;
}
}
}
int haxg()
{
wj.weizhi="黑暗峡谷";
cut="\n飞龙骑士向你飞了过来!你现在要怎么办?\n1.攻击 2.逃跑\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
gj(gw2);fff=1;
}
else if(check('2'))
{
tp(gw2);fff=1;
}
}
}
int prbt(int x)
{
system("color 56");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);puts(" ******* * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" * * ");
otkg(x);puts(" ******** ************ ");
otkg(x);puts(" * ** * * ");
otkg(x);puts(" * **** * * ");
otkg(x);puts(" * ** * ********* ");
otkg(x);puts(" * **** * * * * ");
otkg(x);puts(" * ** * * * * ");
otkg(x);puts(" * ******** ");
otkg(x);puts(" ******** ******** ");
otkg(x);puts(" * * * * ");
otkg(x);puts(" * * * * * ");
otkg(x);puts(" * * ******** ");
otkg(x);puts(" 大陆 ");
otkg(x);puts(" 等你来挑战! ");
cout<<"\n\n\n\n\n";
otkg(148);system("PAUSE");
qp();
}
int smyy()
{
wj.weizhi="圣母医院";
cut="你来到了圣母医院!\n你当前血量为:" ;
out(cut);
cout<<wj.xue<<"/100"<<endl;Sleep(100);
cut="\n医生:勇士,你想回复多少滴血?(1个勇者币1滴血,上限为100)\n你当前拥有勇者币:";
out(cut);
cout<<wj.yzb<<endl;Sleep(100);
cin>>n;
if(n<=wj.yzb){
cut="已为您治疗,你的当前血量为:" ;
out(cut);
wj.xue+=n;
wj.yzb-=n;
if(wj.xue>=100)
wj.xue=100;
cout<<wj.xue<<"/100"<<endl;Sleep(100);
}
else{
cut="你的勇者币不够!!!无法治疗!!!";
out(cut);
}
}
int yd()
{
cut=wj.name;
cut+="勇士,你现在的位置是";
cut+=wj.weizhi;
cut+=",你想去哪?\n1.勇者大陆中心广场 2.勇者商店 3.恶魔森林 4.圣母医院 5.黑暗峡谷\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
yzdlzxgc();fff=1;
}
else if(check('2'))
{
yzsd();fff=1;
}
else if(check('3'))
{
cut="你来到了恶魔森林\n";
out(cut);
emsl();fff=1;
}
else if(check('4')){
smyy();fff=1;
}
else if(check('5')){
out("你来到了黑暗峡谷\n");
haxg();fff=1;
}
}
/*else{
cuowu("1~4",yd);
}*/
}
void zbbx(){
wj.buxie--;
wj.sudu=3;
wj.xiezi="布鞋";
cut="你成功穿上了布鞋!";
out(cut);
}
int zbwq()
{
cut="您当前拥有铁剑*";
out(cut);
cout<<wj.tiejian;Sleep(25);
cut="\n布衣*";
out(cut);
cout<<wj.buyi;Sleep(25);
out("\n突刺长枪*");
cout<<wj.tccq;Sleep(25);
out("\n布鞋*");
cout<<wj.buxie;Sleep(25);
cut="\n\n您要装备什么?\n0.不装备 1.装备铁剑 2.装备布衣 3.装备突刺长枪 4.装备布鞋\n";
out(cut);
fff=0;
while(!fff){
if(check('0')) return 0;
else if(check('1'))
{
fff=1;
if(wj.tiejian==0)
{
cut="你没有铁剑!!!";
out(cut);
}
else
{
zbtj();
}
}
else if(check('2')){
fff=1;
if(wj.buyi==0)
{
cut="你没有布衣!!!";
out(cut);
}
else
{
zbby();
}
}
else if(check('3')){fff=1;
if(wj.tccq==0)
{
cut="你没有突刺长枪!!!";
out(cut);
}
else
{
zbtccq();
}
}
else if(check('4')){
if(!wj.buxie) {
out("你没有布鞋!!!");
}
else{
zbbx();
}
fff=1;
}
/*else{
cuowu("0~3",zbwq);
}*/}
}
int zt()
{
int x=70;
system("color CF");
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
otkg(x);cout<<wj.name<<"勇士的状态:\n";
otkg(x);cout<<"血量:"<<wj.xue<<"/100"<<endl;
otkg(x);cout<<"武器:"<<wj.wuqi<<endl;
otkg(x);cout<<"防具:"<<wj.fangju<<endl;
otkg(x);cout<<"鞋子:"<<wj.xiezi<<endl;
otkg(x);cout<<"位置:"<<wj.weizhi<<endl;
otkg(x);cout<<"勇者币:"<<wj.yzb<<endl;
otkg(x);cout<<"攻击力:"<<wj.gongji<<endl;
otkg(x);cout<<"防御力:"<<wj.fangyu<<endl;
otkg(x);cout<<"速度:"<<wj.sudu<<endl;
otkg(148);system("PAUSE");
}
int dhnn()
{
if(f){
cut=wj.name;
cut+=",看你是一个新手,我把我的全部家当都给你吧!这是50个勇者币,请收下!";
wj.yzb+=50,f=0;
out(cut);
cut="\n\n老奶奶把她的全部家当给你后,突然晕倒,死了……";
out(cut);
}
else{
cut="我已经死了,你不要再来打扰我了!";
out(cut);
}
}
int yzdldh1()
{
cut="1.慈祥的老奶奶\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
dhnn();
fff=1;
}
}
/*else if(check('2'))
{
dhtf();
}*/
}
int yzsddh2()
{
}
int dh(string df)
{
if(df=="勇者大陆中心广场")
{
cut="你要跟谁对话?\n";
out(cut);
yzdldh1();
}
else{
out("周围一个人也没有!\n");
}
}
int yzzt()
{
system("color 9F");
cut=wj.name;
cut+="勇士,你现在想干什么?\n1.移动 2.装备武器或防具 3.查看当前状态 4.对话\n";
out(cut);
fff=0;
while(!fff){
if(check('1'))
{
yd();fff=1;
}
else if(check('2'))
{
zbwq();fff=1;
}
else if(check('3'))
{
zt();fff=1;
}
else if(check('4'))
{
dh(wj.weizhi);fff=1;
}
/*else{
cuowu("1~4",yzzt);
}*/
}
Sleep(1000);
qp();
yzzt();
}
int main()
{
system("title 勇者大陆");
system("mode con cols=1100 lines=1100");
cut+="2.4版本更新:1.新装备:布鞋!2.修复了一些已知的BUG。\n";
csh();
gwcs(1);
gwcs(2);
if(!guanliyuanzhuanshudekeyitiaoguodebianliangzhuiyizhiyouguanliyuancaikeyigaibianqitarenjinzhi){
for(int i=1;i<=99;i++)
{
cout<<"游戏正在为您拼命加载中,已成功加载:";
cout<<i<<"%";
if(i==99) Sleep(995);
Sleep(5);
qp();
}
string jhd[2]={"正在加载资源...","正在加载资源"};
for(int i=1,jhds=0;i<=4;i++,jhds=1-jhds)
{
cout<<jhd[jhds];
Sleep(1000);
system("CLS");
}
}
cout<<"游戏加载完毕,即将开始游戏!!!\n";
Sleep(1000);
system("CLS");
prbt(70);
system("color E4");
out(cut);
system("PAUSE");
cout<<"\n\n";
cut="开始游戏!!!\n";
out(cut);
out("这是一个勇者的大陆,勇士啊,拿起你的武器,成为这片大陆的王者吧!!!\n");
out("勇士,请你留下你的名字吧:");
cin>>wj.name;
qp();
yzzt();
return 0;
}
bool check(char c){
if(KEY_DOWN(c)) return true;
else return false;
}
0
已采纳
李泽远
高级天翼
高级天翼
很好,没找到bug。
能够灵活运用C++知识,
巧妙地运用函数、类、结构等的组合。
游戏有趣,体验极好。
总之————
perfect!完美!
李泽远在2019-08-10 20:06:57追加了内容
与飞龙骑士的战斗回合太多了。
并且初始化武器:shi(三声)太粗俗了,建议改一下。
总体来说还不错!
2
1
0
0
陈喆鹏
资深光能
资深光能
从网上搜了一个程序,和你的很像
#include<stdlib.h>
#include<stdio.h>
#include<time.h> //suiji
#include<string.h>
#include<windows.h> //SLEEP函数
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
}player={"勇者",50,40,100,100,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[12];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
}strongman={"森林巨人","黄金圣衣",40,50,350,200,100,1,2,1,0},
witch={"森林女巫","银甲",25,15,100,50,50,2,2,1,1},
xiyi={"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2},
big_strongman={"森林巨人王","巨人之臂",40*5,50*5,350*5,200*5,100*5,4,4,2,0},
lion={"草原雄狮","绝世好剑",60,30,280,200,100,5,2,1,0},
horse={"草原野马","碧血剑",28,12,90,50,50,6,2,1,1},
bee={"草原黄蜂","长剑",17,11,60,30,35,7,3,2,2},
shitu={"使徒","\0",60*8,30*8,280*8,200*8,100*8,9,1,1,0},
guai={"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3;
}place={1,2,3,4,5,6,7,8};
int max_exp=0;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=9;
int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0;
int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0;
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();
void ChooseWupin();
void DisplayState();
void OrdinaryAct();
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
int i=0,j=0,k=0;
char player_name[21];
SlowDisplay("这是一个勇者的世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
// sndPlaySound("res\\F005.wav",SND_LOOP);
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"EVA初号机")==0)
{
SlowDisplay("封印多年的 EVA初号机 啊!你终于可以重见天日了!\n\n\n EVA初号机 重新启动... 随即... 暴走!!!\n\n\n");
player.attack=999;
player.defense=999;
player.health=9999;
player.max_health=9999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom);
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
SlowDisplay("使用止血草,HP增加60\n\n\n");
cao--;
if(player.health+60>player.max_health)player.health=player.max_health;
else player.health+=60;
}
else SlowDisplay("没有止血草了\n\n\n");
break;
case 2:
if(jijiubao>0)
{
SlowDisplay("使用急救包,HP增加80\n\n\n");
jijiubao--;
if(player.health+80>player.max_health)player.health=player.max_health;
else player.health+=80;
}
else SlowDisplay("没有急救包了\n\n\n");
break;
case 3:
if(baiyao>0)
{
SlowDisplay("使用云南白药,HP增加120\n\n\n");
baiyao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else SlowDisplay("没有云南白药了\n\n\n");
break;
case 4:
if(superbaiyao>0)
{
SlowDisplay("使用超级云南白药,HP增加200\n\n\n");
superbaiyao--;
if(player.health+200>player.max_health)player.health=player.max_health;
else player.health+=200;
}
else SlowDisplay("没有超级云南白药了\n\n\n");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
SlowDisplay("使用手雷,敌人HP减少100\n\n\n");
boom--;
guai.health-=100;
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用手雷!\n\n\n");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
SlowDisplay("使用毒标,敌人HP减少200\n\n\n");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用毒标!\n\n\n");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
SlowDisplay("使用手抛式原子弹,敌人HP减少500\n\n\n");
atom_boom--;
guai.health-=500;
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用手抛式原子弹!\n\n\n");
break;
case 0:break;
default:printf("ChooseWupin error!\n\n\n");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
SlowDisplay("从敌人尸骸中发现");
printf("%s\n\n\n",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"使徒")==0)
{
puts("战斗胜利,救出公主!!!");
getchar();
getchar();
exit(0);
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1\n\n",guai.name);
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//////////
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:fang4n++; break;
case 2:fang3n++; break;
case 3:fang2n++; break;
case 4:strongman_arm=1;break;
case 5:gong4n++; break;
case 6:gong3n++; break;
case 7:gong2n++; break;
default:printf("AddWupin error\n\n\n");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/100;
int l2=player.range_exp/300;
int l3=player.range_exp/600;
if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level<=40&&l2>0)
{
if(l2==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");
printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 0,退出游戏\n\n\n");
puts("=============================================================================");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
SlowDisplay("要去哪里?\n\n\n");
printf("1,酒吧 2,旅馆 3,森林一层 4,森林二层 5,森林三层 6,草原一层 7,草原二层 8,草原三层\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:place_sign=place.hotel; //进入旅店
SlowDisplay("要住店吗? 200个金币 1,是 0,否\n\n\n");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(money-200<0) //判断钱是否够
{
SlowDisplay("Sorry,你的钱不够~\n\n\n");
}
else
{
SlowDisplay("好好休息\n\tHP满\n\t\t第二天了\n\n");
money-=200; //花费200住店费
player.health=player.max_health; //体力满
}
break;
case 0:SlowDisplay("下次再来!\n\n\n");break;
default:printf("hotel talk error!\n\n\n");
}
place_sign=0;
break;
case 3:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 4:
place_sign=place.forest2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=witch;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=big_strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 6:
place_sign=place.grass1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=bee;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=horse;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 7:
place_sign=place.grass2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=horse;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=lion;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 8:
place_sign=place.grass3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=lion;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
if(strongman_arm)
{
SlowDisplay("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人之臂我要了,公主你也别想带走!\n\n\n");
guai=shitu;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else SlowDisplay("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨人之臂,我可以告诉你公主的下落哦~\n\n\n");
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
default:printf("choose map error!\n\n\n");
}
break;
case 2: ChooseWupin();break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
SlowDisplay("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板\n\n\n"); //显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
SlowDisplay("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
SlowDisplay("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的丛林和草原很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
printf("%s心想:(哇,这位大叔人真好啊!\n\n\n)",player.name);
gong1n++;
fang1n++;
}
else SlowDisplay("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面森林和草原所吓倒!\n\n\n");
break;
case 3:
printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,XO酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(money<25)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+20<=player.max_health)
{
SlowDisplay("HP+20.");
money-=25;
player.health+=20;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 2:if(money<80)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+50<=player.max_health)
{
SlowDisplay("HP+50.");
money-=80;
player.health+=50;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 3:if(money<150)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+100<=player.max_health)
{
SlowDisplay("HP+100.");
money-=150;
player.health+=100;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 0:SlowDisplay("下次再来!\n");break;
default:SlowDisplay("输入错误\n\n\n");
}
}
}
}
else if(place_sign==place.hotel)
SlowDisplay("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
else SlowDisplay("这里好像没人可以聊天\n\n\n");
break;
case 4: DisplayState(); break; //显示状态
case 5: //装备
printf("攻装: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n);
printf("防装: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
SlowDisplay("选择要装备的武器或防具:\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(gong1n>=1)
{
SlowDisplay("拿起了匕首\n\n\n");
gong=gong1;
strcpy(gongname,"匕首");
}
else SlowDisplay("你没有匕首可以装备\n\n\n");
break;
case 2:if(gong2n>=1)
{
SlowDisplay("拿起了长剑\n\n\n");
gong=gong2;
strcpy(gongname,"长剑");
}
else SlowDisplay("你没有长剑可以装备\n\n\n");
break;
case 3:if(gong3n>=1)
{
SlowDisplay("拿起了碧血剑\n\n\n");
gong=gong3;
strcpy(gongname,"碧血剑");
}
else SlowDisplay("你没有碧血剑可以装备\n\n\n");
break;
case 4:if(gong4n>=1)
{
SlowDisplay("拿起了绝世好剑\n\n\n");
gong=gong4;
strcpy(gongname,"绝世好剑");
}
else SlowDisplay("你没有绝世好剑可以装备\n\n\n");
break;
case 5:if(fang1n>=1)
{
SlowDisplay("穿上了布衣\n\n\n");
fang=fang1;
strcpy(fangname,"布衣");
}
else SlowDisplay("你没有布衣可以装备\n\n\n");
break;
case 6:if(fang2>=1)
{
SlowDisplay("穿上了铁甲\n\n\n");
fang=fang2;
strcpy(fangname,"铁甲");
}
else SlowDisplay("你没有铁甲可以装备\n\n\n");
break;
case 7:if(fang3n>=1)
{
SlowDisplay("穿上了银甲\n\n\n");
fang=fang3;
strcpy(fangname,"银甲");
}
else SlowDisplay("你没有银甲可以装备\n\n\n");
break;
case 8:if(fang4n>=1)
{
SlowDisplay("穿上了黄金圣衣\n\n\n");
fang=fang4;
strcpy(fangname,"黄金圣衣");
}
else SlowDisplay("你没有黄金圣衣可以装备\n\n\n");
break;
case 0:SlowDisplay("未更换装备\n\n\n");break;
default:printf("change error!");
}
break;
case 0:
SlowDisplay("确定退出游戏?(Y/N)\n\n\n");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y')
{
SlowDisplay("数据存储中...");
//向文件中更新数据;
getchar();
SlowDisplay("按回车退出");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
else SlowDisplay("继续!\n\n\n");
break;
default:SlowDisplay("输入错误!\n\n\n");
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2: ChooseWupin();break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:DisplayState();break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~\n\n\n",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!\n\n\n",player.name);
break;
default:SlowDisplay("输入错误,重新输入!\n\n\n");
}
}
}
void SlowDisplay(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
}
0
0
0
毛润宇
新手天翼
新手天翼
这个游戏怎么与我之前玩过的勇者游戏这么像啊,我的c++承受不了这程序,所以我没法给你一个评价;
只是想说:你是不是改了别的程序?不是的话,你一定是全国竞赛拿奖的人
0
0
0
0
董子墨
中级天翼
中级天翼
建议:
1.有防御武器;
2.可以提高速度;
3.在老奶奶死后就可以把“对话”删了;
4.可以再黑暗峡谷后在增加新的挑战;
5.完成所有挑战后可以自动结束游戏。
总体来说还不错
0