实例介绍
【实例简介】冒险游戏
#define DECISION "你想去哪?\n1 村庄\n2 冒险\n3 查看个人信息\n4 存档(首次游戏请先存储一次再游戏)"//待添加
#define DECISION2 "你想挑战的副本是:1.史莱姆森林 2.哥布林部落 3.鬼人古堡"//待添加
void fjshop(void);//防具店
void wqshop(void);//武器店
void vill(void);//村庄
void zdmk(void);//攻击
void lvup(void);//升级
void slm(void);//史莱姆
void slm1(void);
void slm2(void);//完毕
void gbl(void);//哥布林
void gbl1(void);
void gbl2(void);//end
void gr(void);//鬼人
void gr1(void);//
void gr2(void);//end//我把这些函数整理了下,显得整洁
void maoxian(void);
void vill(void);
void pi(void);//personal information本来想叫rw(人物),但害怕后期加任务栏
void cd(void);//存档
int hp=200,mp=20,sp,ex=0,p=5,q=20,lv=1,i=1,eak=0,edf=0,gd=0,viz=0,sh,tybosshp,x,hpboss,fb;
int main(void)//主程序开始
{
while(2>1)
{
while(x==0)
{
printf("%s\n",DECISION);
scanf("%d",&x);
while(x==1)
{
vill();
viz=0;
x=0;
}
while(x==2)
{
maoxian();
x=0;
}
while(x==3)
{
pi();
x=0;
}
while(x==4)
{
cd();
x=0;
}
}
}
return 0;
}//主程序到此处完结
void cd(void)//存档模块
{
int du;
printf("你想要读取还是存储?\n1 读取\n2 存储\n3 取消\n");
scanf("%d",&du);
int a[]={lv,hp,mp,ex,gd};
while(du==1)
{
FILE *fpRead=fopen("data.txt","r");
int b[5];
for(int i=0;i<5;i )
{
fscanf(fpRead,"%d ",&b[i]);
a[i]=b[i];
}
lv=a[0],hp=a[1],mp=a[2],ex=a[3],gd=a[4];
du=-1;
}
while(du==2)
{
FILE *fpWrite=fopen("data.txt","w");
for(int i=0;i<5;i )
{
fprintf(fpWrite,"%d ",a[i]);
}
fclose(fpWrite);
du=-1;
}
while(du==3)
{
du=-1;
}
}
void pi(void)//个人信息模块
{
printf(" 个人信息 \n") ;
printf("称号:暂未开放 \n");//暂无
printf("等级:%d hp:%d mp:%d 经验:%d 金币:%d \n",lv,hp,mp,ex,gd);
printf("技能伤害:1.重击:%d 2.嗜血:boss越强,伤害越高 3.星爆气流斩:%d \n",p,q);
}
void lvup(void)//升级模块
{
while(ex>100*lv)//把经验栏提出来,因为每个怪物经验不同
{
printf("升级了,你的等级为%d\n",lv 1);
p=p 3;
q=q 10;
ex=ex-100*lv;
lv=lv 1;
hp=200 20*lv;
mp=20 2*lv;
}
}
void vill(void)//村庄
{
while(viz==0)
{
printf("欢迎回到村庄勇士\n请选择目的\n1 武器店\n2 防具店\n3 退出村庄\n");
scanf("%d",&viz);
while(viz>=3)
{
printf("退出村庄\n");
viz=-1;
}
while(viz==1)
{
wqshop();
}
while(viz==2)
{
fjshop();
}
}
}//村庄模块
void wqshop(void)//武器店
{
while(viz==1)
{ int wq=0,dj=1,cj=1;
printf("你好勇士,欢迎来到武器店\n请问你需要什么?\n1 短剑(伤害加10)\n2 500金币 长剑(伤害加30)\n3 2000金币 退出武器店\n");
scanf("%d",&wq);
if(wq>2)
{
while(wq>3)
{
printf("未开放,敬请期待\n");
wq=0;
}
while(wq==3)
{
printf("你选择退出\n;");
viz=0;
wq=0;
}
}
else
{
while(wq==1)
{
if(gd>500)
{
if(dj=1)
{
printf("你购买了短剑,伤害加十,重复购买无效\n");
eak=10;
p=p eak;//声明全局变量,装备加成攻击力
dj=0;
wq=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
wq=0;
}
while(wq==2)
{
if(gd>2000)
{
if(cj=1)
{
printf("你购买了长剑,伤害加三十,重复购买无效\n");
eak=30;
p=p eak;//声明全局变量,装备加成攻击力
cj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
wq=0;
}
}
}
}
void fjshop(void)//防具店
{
while(viz==2)
{ int fj=0,bj=1,szj=1;
printf("你好勇士,欢迎来到防具店\n请问你需要什么?\n1 布甲(伤害抵消4)\n2 500金币 锁子甲(伤害抵消7)\n3 1000金币 退出防具店\n");
scanf("%d",&fj);
if(fj>2)
{
while(fj>3)
{
printf("未开放,敬请期待\n");
fj=0;
}
while(fj==3)
{
printf("你选择退出\n;");
viz=0;
fj=0;
}
}
else
{
while(fj==1)
{
if(gd>500)
{
if(bj=1)
{
printf("你购买了布甲,伤害抵消4,重复购买无效\n");
edf=4;//声明全局变量,装备加成攻击力
bj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
fj=0;
}
while(fj==2)
{
if(gd>1000)
{
if(szj=1)
{
printf("你购买了锁子甲,伤害抵消7,重复购买无效\n");
edf=7;//声明全局变量,装备加成攻击力
szj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
fj=0;
}
}
}
}
void maoxian(void)//冒险模块
{
printf("%s\n",DECISION2);
scanf("%d",&fb);
if(fb>3)
{
printf("未开放请重新选择\n");
}
else
{
switch (fb)//这样看起来不简洁,但后期加掉落物品时很方便
{
case 1:
slm();
break;
case 2:
slm();
gbl();
break;
case 3:
slm();slm();//同上
gbl();
gr();
break;
}
}
lvup();
hp=200 20*lv;
mp=20 2*lv;
}
void slm(void)//怪物模块
{
slm1();
zdmk();
slm2();
}
void gbl(void)
{
gbl1();
zdmk();
gbl2();
}
void gr(void)
{
gr1();
zdmk();
gr2();
}
【实例截图】
#define DECISION "你想去哪?\n1 村庄\n2 冒险\n3 查看个人信息\n4 存档(首次游戏请先存储一次再游戏)"//待添加
#define DECISION2 "你想挑战的副本是:1.史莱姆森林 2.哥布林部落 3.鬼人古堡"//待添加
void fjshop(void);//防具店
void wqshop(void);//武器店
void vill(void);//村庄
void zdmk(void);//攻击
void lvup(void);//升级
void slm(void);//史莱姆
void slm1(void);
void slm2(void);//完毕
void gbl(void);//哥布林
void gbl1(void);
void gbl2(void);//end
void gr(void);//鬼人
void gr1(void);//
void gr2(void);//end//我把这些函数整理了下,显得整洁
void maoxian(void);
void vill(void);
void pi(void);//personal information本来想叫rw(人物),但害怕后期加任务栏
void cd(void);//存档
int hp=200,mp=20,sp,ex=0,p=5,q=20,lv=1,i=1,eak=0,edf=0,gd=0,viz=0,sh,tybosshp,x,hpboss,fb;
int main(void)//主程序开始
{
while(2>1)
{
while(x==0)
{
printf("%s\n",DECISION);
scanf("%d",&x);
while(x==1)
{
vill();
viz=0;
x=0;
}
while(x==2)
{
maoxian();
x=0;
}
while(x==3)
{
pi();
x=0;
}
while(x==4)
{
cd();
x=0;
}
}
}
return 0;
}//主程序到此处完结
void cd(void)//存档模块
{
int du;
printf("你想要读取还是存储?\n1 读取\n2 存储\n3 取消\n");
scanf("%d",&du);
int a[]={lv,hp,mp,ex,gd};
while(du==1)
{
FILE *fpRead=fopen("data.txt","r");
int b[5];
for(int i=0;i<5;i )
{
fscanf(fpRead,"%d ",&b[i]);
a[i]=b[i];
}
lv=a[0],hp=a[1],mp=a[2],ex=a[3],gd=a[4];
du=-1;
}
while(du==2)
{
FILE *fpWrite=fopen("data.txt","w");
for(int i=0;i<5;i )
{
fprintf(fpWrite,"%d ",a[i]);
}
fclose(fpWrite);
du=-1;
}
while(du==3)
{
du=-1;
}
}
void pi(void)//个人信息模块
{
printf(" 个人信息 \n") ;
printf("称号:暂未开放 \n");//暂无
printf("等级:%d hp:%d mp:%d 经验:%d 金币:%d \n",lv,hp,mp,ex,gd);
printf("技能伤害:1.重击:%d 2.嗜血:boss越强,伤害越高 3.星爆气流斩:%d \n",p,q);
}
void lvup(void)//升级模块
{
while(ex>100*lv)//把经验栏提出来,因为每个怪物经验不同
{
printf("升级了,你的等级为%d\n",lv 1);
p=p 3;
q=q 10;
ex=ex-100*lv;
lv=lv 1;
hp=200 20*lv;
mp=20 2*lv;
}
}
void vill(void)//村庄
{
while(viz==0)
{
printf("欢迎回到村庄勇士\n请选择目的\n1 武器店\n2 防具店\n3 退出村庄\n");
scanf("%d",&viz);
while(viz>=3)
{
printf("退出村庄\n");
viz=-1;
}
while(viz==1)
{
wqshop();
}
while(viz==2)
{
fjshop();
}
}
}//村庄模块
void wqshop(void)//武器店
{
while(viz==1)
{ int wq=0,dj=1,cj=1;
printf("你好勇士,欢迎来到武器店\n请问你需要什么?\n1 短剑(伤害加10)\n2 500金币 长剑(伤害加30)\n3 2000金币 退出武器店\n");
scanf("%d",&wq);
if(wq>2)
{
while(wq>3)
{
printf("未开放,敬请期待\n");
wq=0;
}
while(wq==3)
{
printf("你选择退出\n;");
viz=0;
wq=0;
}
}
else
{
while(wq==1)
{
if(gd>500)
{
if(dj=1)
{
printf("你购买了短剑,伤害加十,重复购买无效\n");
eak=10;
p=p eak;//声明全局变量,装备加成攻击力
dj=0;
wq=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
wq=0;
}
while(wq==2)
{
if(gd>2000)
{
if(cj=1)
{
printf("你购买了长剑,伤害加三十,重复购买无效\n");
eak=30;
p=p eak;//声明全局变量,装备加成攻击力
cj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
wq=0;
}
}
}
}
void fjshop(void)//防具店
{
while(viz==2)
{ int fj=0,bj=1,szj=1;
printf("你好勇士,欢迎来到防具店\n请问你需要什么?\n1 布甲(伤害抵消4)\n2 500金币 锁子甲(伤害抵消7)\n3 1000金币 退出防具店\n");
scanf("%d",&fj);
if(fj>2)
{
while(fj>3)
{
printf("未开放,敬请期待\n");
fj=0;
}
while(fj==3)
{
printf("你选择退出\n;");
viz=0;
fj=0;
}
}
else
{
while(fj==1)
{
if(gd>500)
{
if(bj=1)
{
printf("你购买了布甲,伤害抵消4,重复购买无效\n");
edf=4;//声明全局变量,装备加成攻击力
bj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
fj=0;
}
while(fj==2)
{
if(gd>1000)
{
if(szj=1)
{
printf("你购买了锁子甲,伤害抵消7,重复购买无效\n");
edf=7;//声明全局变量,装备加成攻击力
szj=0;
}
else
{
printf("你已经购买过了\n");
}
}
else
{
printf("金币不足\n");
}
fj=0;
}
}
}
}
void maoxian(void)//冒险模块
{
printf("%s\n",DECISION2);
scanf("%d",&fb);
if(fb>3)
{
printf("未开放请重新选择\n");
}
else
{
switch (fb)//这样看起来不简洁,但后期加掉落物品时很方便
{
case 1:
slm();
break;
case 2:
slm();
gbl();
break;
case 3:
slm();slm();//同上
gbl();
gr();
break;
}
}
lvup();
hp=200 20*lv;
mp=20 2*lv;
}
void slm(void)//怪物模块
{
slm1();
zdmk();
slm2();
}
void gbl(void)
{
gbl1();
zdmk();
gbl2();
}
void gr(void)
{
gr1();
zdmk();
gr2();
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论