问题标题: 酷町堂:游戏

0
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
李泽远
李泽远
高级天翼
高级天翼

与飞龙骑士的战斗回合太多了。

并且初始化武器:shi(三声)太粗俗了,建议改一下。

总体来说还不错!

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
被禁言 姜思远
姜思远
初级光能
初级光能

渲染非常好,代码非常棒!

在经过修改后2.3肯定会更好的

0
0
董子墨
董子墨
中级天翼
中级天翼

建议:

1.有防御武器;

2.可以提高速度;

3.在老奶奶死后就可以把“对话”删了;

4.可以再黑暗峡谷后在增加新的挑战;

5.完成所有挑战后可以自动结束游戏。

总体来说还不错

0
我要回答