前言:
这款小游戏我从小时候就开始构思想法,后来学习C后开始慢慢实现,虽然我小时候幻想的是3A大作形式的,但无奈现在能力有限,还是慢慢来,现在还在大学学习计算机相关专业,虽然不知道以后还会不会走编程这条路,但技多不压身。当然,实现这个小游戏的途中得到了CSDN不少大佬的帮助,在此感谢各位。
ps:虽然游戏主体大体实现,但是雅各布深渊的小怪、威廉湖以及万神殿的小怪和最终boss还没有设置,字幕式输出、开始想要的升级方式嫌麻烦暂时没有弄,后续会不断更新,但是只会抽时间弄了。另外,为了方便新手阅读和学习(本人也是新手),通篇代码只要学到了循环、数组的部分,看懂的问题不大,如果有bug麻烦直接指出,有什么建议也可以直接和作者交流学习,感谢大家。。
这个小游戏是文字游戏,我做成了一个项目,分为三个文件
1.test.c
用于储存主函数
#include<stdio.h>
#include"game.h"
int main()
{
printf("游戏名:《神魔》\n");
printf("研发:Zorro\n");
printf("作者出于兴趣研发了这款游戏,代码类型较为简单,若有建议可联系作者\n");
printf("勇士,请拿起你手上的武器,向强者发起挑战,去追求实力的巅峰\n");
printf("现在,你可以进行选择:1.开始游戏 2.退出游戏\n");
int start=0;
scanf("%d",&start);
switch(start){
case 1:
game();
case 2:
break;
}
return 0;
}2.game.h
用于储存函数名以及头文件
#ifndef __GAME_H
#define __GAME_H
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//各个函数
void game();
void zt();
void wq();
void fj();
void dj();
void bb();
void sd();
void jb();
void ywmx();
void dt();
void xb1();
void enemy1();
void wd();
void xb2();
void enemy2();
void enemy3();
void tk();
void xb3();
void enemy4();
void lk();
void xb4();
void enemy5();
void enemy6();
void ygb();
void boss1();
void wl();
#endif3.game.c
用于储存各类定义和主体函数
#include"game.h"
//各项定义
int x=0;//game函数执行参数
int bag;//bb函数执行参数
int weapons;//wq函数执行参数
int armor;//fj函数执行参数
int items;//dj函数执行参数
int map=0;//dt函数执行参数
int shop;//sd函数的执行参数
int bar;//jb函数的执行参数
int adventure=0;//ywmx函数的执行参数
int moutain=0;//wd函数的执行参数
int river=0;//tk函数的执行参数
int gorge=0;//lk函数的执行参数
int abyss=0;//ygb函数的执行参数
int lake=0;//wl函数的执行参数
int gj=1,fy=1,myhp=30;//人物的基础属性
int coin=0;//金币
int bs=0,mb=0,htq=0,qld=0,tjs=0;//基础武器
int zdqs=0,jgz=0,lszc=0,bxzr=0,zszn=0;//稀有武器
int py=0,bj=0,tj=0,yydp=0,hyzj=0;//基础防具
int qkhtf=0,jljs=0,szhjj=0,swzy=0,txzyf=0;//稀有防具
int fb=0,hyfz=0,wll=0,xybhl=0,ywt=0,ssx=0,tssp=0;//攻击型道具
int bd=0,jjb=0;//回血道具
int hp[]= {10,15,15,30,15,20}; //小怪的血量
int HP[]= {40}; //boss的血量
//事件触发定义
int gift=0;//酒吧老板给的小礼物
int bcd=0;//百草丹,进入威廉湖的必需品
void game() {//游戏开始
while(1) {
while(x==0) {
printf("接下来你可以进行选择:1.查看状态 2.背包 3.地图 4.退出游戏\n");
scanf("%d",&x);
while(x==1) {
zt();
x=0;
}
while(x==2) {
bb();
x=0;
}
while(x==3) {
dt();
map=0;
x=0;
}
while(x==4) {
x=-1;
}
}
}
}
void zt() {//状态
printf("\n攻击:%d 防御:%d 生命:%d 金币:%d\n\n",gj,fy,myhp,coin);
}
void bb() {
printf("你的物品有:\n");
printf("1.武器 2.防具 3.道具 4.返回\n");
scanf("%d",&bag);
while(bag==1) {
wq();
bag=4;
}
while(bag==2) {
fj();
bag=4;
}
while(bag==3) {
dj();
bag=4;
}
while(bag==4) {
break;
}
}
void wq() {//武器
printf("1.匕首:%d个 2.木棒:%d个 3.虎头枪:%d个 4.青龙刀:%d个 5.太极扇:%d个\n",bs,mb,htq,qld,tjs);
printf("6.紫电清霜:%d个 7.金刚琢:%d个 8.雷神之锤:%d个 9.不朽之刃:%d个 10.诸神之怒:%d个\n",zdqs,jgz,lszc,bxzr,zszn);
printf("11.返回\n");
scanf("%d",&weapons);
while(weapons==1) {
if(bs>0) {
gj++;
printf("你拿起了匕首,攻击+1\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==2) {
if(mb>0) {
gj+=2;
printf("你拿起了木棒,攻击+2\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==3) {
if(htq>0) {
gj+=3;
printf("你拿起了虎头枪,攻击+3\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==4) {
if(qld>0) {
gj+=4;
printf("你拿起了青龙刀,攻击+4\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==5) {
if(tjs>0) {
gj+=5;
printf("你拿起了太极扇,攻击+5\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==6) {
if(zdqs>0) {
gj+=12;
printf("你拿起了紫电清霜,攻击+12\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==7) {
if(jgz>0) {
gj+=14;
printf("你拿起了金刚琢,攻击+14\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==8) {
if(lszc>0) {
gj+=18;
printf("你拿起了雷神之锤,攻击+18\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==9) {
if(bxzr>0) {
gj+=22;
printf("你拿起了不朽之刃,攻击+22\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==10) {
if(zszn>0) {
gj+=30;
printf("你拿起了诸神之怒,攻击+30\n\n");
} else {
printf("数量不足!\n\n");
}
weapons=11;
}
while(weapons==11) {
break;
}
}
void fj() {//防具
printf("1.皮衣%d个 2.布甲%d个 3.铁甲%d个 4.月影斗篷%d个 5.黑曜重甲%d个\n",py,bj,tj,yydp,hyzj);
printf("6.乾坤护体符%d个 7.锦镧袈裟%d个 8.锁子黄金甲%d个 9.神王之佑%d个 10.天行镇妖幡%d个\n",qkhtf,jljs,szhjj,swzy,txzyf);
printf("11.返回\n");
scanf("%d",&armor);
while(armor==1) {
if(py>0) {
fy++;
printf("你穿上了皮衣,防御+1\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==2) {
if(bj>0) {
fy+=2;
printf("你穿上了布甲,防御+2\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==3) {
if(py>0) {
fy+=3;
printf("你穿上了铁甲,防御+3\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==4) {
if(yydp>0) {
fy+=4;
printf("你穿上了月影斗篷,防御+4\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==5) {
if(hyzj>0) {
fy+=5;
printf("你穿上了黑曜重甲,防御+5\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==6) {
if(qkhtf>0) {
fy+=10;
printf("你穿上了乾坤护体符,防御+10\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==7) {
if(jljs>0) {
fy+=14;
printf("你穿上了锦镧袈裟,防御+14\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==8) {
if(szhjj>0) {
fy+=18;
printf("你穿上了锁子黄金甲,防御+18\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==9) {
if(swzy>0) {
fy+=21;
printf("你穿上了神王之佑,防御+21\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==10) {
if(txzyf>0) {
fy+=27;
printf("你穿上了天行镇妖幡,防御+27\n\n");
} else {
printf("数量不足!\n\n");
}
armor=11;
}
while(armor==11) {
break;
}
}
void dj() {//道具
printf("飞镖:%d个 火焰符咒:%d个 五雷令:%d个 降妖宝葫芦:%d个\n",fb,hyfz,wll,xybhl);
printf("阎王贴:%d个 神兽血:%d个 天神审判:%d个\n",ywt,ssx,tssp);
printf("1.绷带:%d个 2.急救包:%d个 3.返回\n",bd,jjb);
scanf("%d",&items);
while(items==1) {
if(myhp<30) {
if(bd>0) {
myhp+=1;
bd--;
printf("你回复了1点生命值\n\n");
} else {
printf("数量不足!\n\n");
}
} else {
printf("血量已满,无法回复!\n\n");
}
items=3;
}
while(items==2) {
if(myhp<=20) {
if(jjb>0) {
myhp+=10;
jjb--;
printf("你回复了10点生命值\n\n");
} else {
printf("数量不足!\n\n");
}
} else {
myhp=30;
printf("你的血量已满\n\n");
}
items=3;
}
while(items=3) {
break;
}
}
void dt() {//地图
while(map==0) {
printf("你要去哪?\n");
printf("1.商店 2.酒吧 3.野外冒险 4.返回\n");
scanf("%d",&map);
while(map==1) {
sd();
map=0;
}
while(map==2) {
jb();
map=0;
}
while(map==3) {
ywmx();
adventure=0;
map=0;
}
while(map==4) {
map=1;
}
}
}
void sd() {//商店
printf("\n商店老板霍兹格:“欢迎光临!您需要些什么?”\n\n");
printf("1.匕首:1金币 2.皮衣:1金币 3.木棒:5金币 4.布甲:5金币 5.绷带:10金币\n6.飞镖:10金币 7.急救包:15金币 8.火焰符咒:15金币 \n");
printf("9.回复全部生命值:30金币 10.返回\n");
scanf("%d",&shop);
while(shop==1) {
if(coin>1) {
coin--;
bs++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==2) {
if(coin>1) {
coin--;
py++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==3) {
if(coin>5) {
coin-=5;
mb++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==4) {
if(coin>5) {
coin-=5;
bj++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==5) {
if(coin>10) {
coin-=10;
bd++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==6) {
if(coin>10) {
coin-=10;
fb++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==7) {
if(coin>15) {
coin-=15;
jjb++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==8) {
if(coin>15) {
coin-=15;
hyfz++;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop==9) {
if(coin>66) {
coin-=30;
myhp=30;
printf("购买完毕,你还有%d个金币\n\n",coin);
} else
printf("金币不足!\n\n");
shop=10;
}
while(shop=10) {
break;
}
}
void jb() {//酒吧
printf("\n夕阳黄昏的映照下,酒吧显得格外冷清,只有为数不多的几人在喝着酒\n");
printf("路人甲:“哈哈,听说了吗,好像有个新来的小子到咱镇上来了”时不时往你这边瞟几眼\n");
printf("路人乙:“那又怎样,一旦他去了野外,那一定是凶多吉少啊!”说完,冷笑着喝了口酒\n\n");
printf("请选择要聊天的对象:1.酒吧老板 2.服务员 3.离开\n");
scanf("%d",&bar);
while(bar==1) {
printf("\n你好呀,我是酒吧老板豪斯,很高兴认识你,初次见面,给你个小礼物吧。\n\n");
if(gift==0) {
printf("获得一把匕首\n\n");
bs++;
gift=1;
} else {
printf("您已获得过礼物。\n");
}
printf("1.返回\n");
int a;
scanf("%d",&a);
if(a=1)
bar=0;
}
while(bar==2) {
printf("\n最近镇子不太平,唉,希望没什么事儿。\n");
printf("对了,你是新来的吧,我给你介绍一下镇子外的概况吧\n");
printf("出了镇子就是绵延无际的乌达山脉,而乌达山脉深处有一条叫做塔克河的河流,河流最终引向洛克峡谷,洛克峡谷中呢又有一处叫做雅各布深渊的地方\n");
printf("那个地方特别恐怖!暗无天日,怪物横行,遍地都是死尸和骸骨,我劝你啊,千万不要去那儿!\n");
printf("至于其他的,我就不太清楚了,我只听说,在尸横遍野的雅各布深渊中央,是一面平静如镜的湖,湖周围生机盎然,仿佛人间仙境\n");
printf("更神奇的是,听说湖中央还有一座岛,岛上有座神殿,埋葬了这个世界的所有至强者!哈哈哈哈,听起来是不是很激动!\n");
printf("但关于万神殿,更像是传说,因为,咱们镇子上根本就没人去过!\n\n");
printf("1.返回\n");
int b;
scanf("%d",&b);
if(b=1)
bar=0;
}
while(bar==3) {
break;
}
}
void ywmx() {//野外冒险
while(adventure==0 && myhp>0) {
printf("请选择你要去的地方:\n");
printf("1.乌达山脉 危险系数:★\n");
printf("2.塔克河 危险系数:★★\n");
printf("3.洛克峡谷 危险系数:★★★\n");
printf("4.雅各布深渊 危险系数:★★★★\n");
printf("5.威廉湖 危险系数:★★★★★\n");
printf("6.返回\n");
scanf("%d",&adventure);
while(adventure==1) {
wd();
adventure=0;
}
while(adventure==2) {
tk();
adventure=0;
}
while(adventure==3) {
lk();
adventure=0;
}
while(adventure==4) {
ygb();
adventure=0;
}
while(adventure==5) {
if(bcd==1) {
wl();
} else {
printf("\n你无法通过雅各布深渊与威廉湖之间的毒气屏障!\n\n");
}
adventure=0;
}
while(adventure==6) {
adventure=-1;
}
}
while(myhp<=0) {
printf("你的生命值太低,无法进行野外冒险!!\n\n");
break;
}
}
void zddj(int hp) {//战斗道具
printf("1.飞镖%d个 2.火焰符咒%d个 3.五雷令%d个 4.降妖宝葫芦%d个\n",fb,hyfz,wll,xybhl);
printf("5.阎王贴%d个 6.神兽血%d个 7.天神审判%d个\n",ywt,ssx,tssp);
printf("8.绷带%d个 9.急救包%d个 10.返回\n",bd,jjb);
int j;
scanf("%d",&j);
switch(j) {
case 1:
if(fb>0) {
fb--;
hp-=5;
} else
printf("数量不足!\n");
break;
case 2:
if(hyfz>0) {
hyfz--;
hp-=10;
} else
printf("数量不足!\n");
break;
case 3:
if(wll>0) {
wll--;
hp-=15;
} else
printf("数量不足!\n");
break;
case 4:
if(xybhl>0) {
xybhl--;
hp-=20;
} else
printf("数量不足!\n");
break;
case 5:
if(ywt>0) {
ywt--;
hp-=30;
} else
printf("数量不足!\n");
break;
case 6:
if(ssx>0) {
ssx--;
hp-=36;
} else
printf("数量不足!\n");
break;
case 7:
if(tssp>0) {
tssp--;
hp-=42;
} else
printf("数量不足!\n");
break;
case 8:
if(bd>0) {
bd--;
myhp+=10;
} else
printf("数量不足!\n");
break;
case 9:
if(jjb>0) {
jjb--;
myhp+=20;
} else
printf("数量不足!\n");
break;
case 10:
break;
}
}
void xb1() {
printf("你进入了山地寻宝地\n");
int m;
m=rand()%4+1;
if(m==1||m==2||m==3) {
coin++;
printf("获得一个金币\n\n");
}
if(m==4) {
myhp--;
printf("你没注意,摔了一跤,生命值-1\n\n");
}
}
void enemy1() {
int n;
if(fy>=3)
printf("你的防御较高,敌人攻击无效\n");
else
n=rand()%4+1;
if(n==1||n==2) {
myhp-=(4-fy);
printf("狼咬了你一口,生命值-%d\n",4-fy);
}
if(n==3) {
myhp-=(3-fy);
printf("狼抓了你一下,生命值-%d\n",3-fy);
}
if(n==4) {
myhp-=(5-fy);
printf("狼对你疯狂撕咬,生命值-%d\n",5-fy);
}
}
void wd() {
printf("在丛林茂密的山中行走\n\n");
int g;
g=rand()%3+1;
if(g==1||g==2) {
xb1();
}
if(g==3) {
printf("一只狼向你扑了过来!\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h1;
scanf("%d",&h1);
switch(h1) {
case 1:
while(myhp>0&&hp[0]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i1;
scanf("%d",&i1);
switch(i1) {
case 1:
if(gj>0) {
hp[0]-=gj;//狼的防御值为0
enemy1();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy1();
}
break;
case 2:
zddj(hp[0]);
enemy1();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[0]<=0) {
printf("你获得了胜利\n\n");
int p1;
p1=rand()%5+1;
if(p1==1) {
coin++;
printf("从狼的尸体中发现一枚金币\n\n");
}
if(p1==2) {
mb++;
printf("从狼的尸体中发现一个木棒\n\n");
}
}
if(myhp<=0&&hp[0]>0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
}
void xb2() {
printf("你进入了河流寻宝地\n");
int m2;
m2=rand()%12+1;
if(m2>=1 && m2<7) {
coin++;
printf("获得一个金币\n\n");
}
if(m2>=7&&m2<12) {
myhp--;
printf("你没注意,摔了一跤,生命值-1\n\n");
}
if(m2==12) {
zdqs++;
printf("河底的淤泥中,有什么东西闪闪发光,锋芒毕露\n");
printf("在河流中挖出宝剑——紫电清霜\n\n");
}
}
void enemy2() {
int n2;
if(fy>=5)
printf("你的防御较高,敌人攻击无效\n");
else
n2=rand()%4+1;
if(n2==1||n2==2) {
myhp-=(5-fy);
printf("公牛鲨咬了你一口,生命值-%d\n",5-fy);
}
if(n2==3) {
myhp-=(6-fy);
printf("公牛鲨对你疯狂撕咬,生命值-%d\n",6-fy);
}
if(n2==4) {
myhp-=(8-fy);
printf("公牛鲨使用技能——狂鲨突袭\n");
printf("造成大量伤害!你的生命值-%d\n",8-fy);
}
}
void enemy3() {
int n3;
if(fy>=6)
printf("你的防御较高,敌人攻击无效\n");
else
n3=rand()%3+1;
if(n3==1) {
myhp-=(6-fy);
printf("水鬼给你一记重拳,生命值-%d\n",6-fy);
}
if(n3==2) {
myhp-=(7-fy);
printf("水鬼将你拖进水底,你呼吸困难,生命值-%d\n",7-fy);
}
if(n3==3) {
myhp-=(8-fy);
printf("水鬼使用技能——踏浪迎击\n");
printf("造成大量伤害!你的生命值-%d\n",9-fy);
}
}
void tk() {
printf("在湍急的河流中艰难跋涉\\n\n");
int g;
g=rand()%3+1;
if(g==1||g==2) {
xb2();
}
if(g==3) {
printf("一头公牛鲨向你游了过来!\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h1;
scanf("%d",&h1);
switch(h1) {
case 1:
while(myhp>0&&hp[1]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i1;
scanf("%d",&i1);
switch(i1) {
case 1:
if(gj>2) {
hp[1]-=(gj-2);//公牛鲨的防御值为2
enemy2();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy2();
}
break;
case 2:
zddj(hp[1]);
enemy2();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[1]<=0) {
printf("你获得了胜利\n\n");
int p1;
p1=rand()%5+1;
if(p1==1) {
coin++;
printf("从公牛鲨的尸体中发现一枚金币\n\n");
}
if(p1==2) {
bj++;
printf("从公牛鲨的尸体中发现一个布甲\n\n");
}
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
if(g=4) {
printf("一只水鬼冲了过来!\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h2;
scanf("%d",&h2);
switch(h2) {
case 1:
while(myhp>0&&hp[2]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i2;
scanf("%d",&i2);
switch(i2) {
case 1:
if(gj>1) {
hp[2]-=(gj-1);//水鬼的防御值为1
enemy3();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy3();
}
break;
case 2:
zddj(hp[2]);
enemy3();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[2]<=0) {
printf("你获得了胜利\n\n");
int p2;
p2=rand()%5+1;
if(p2==1) {
coin++;
printf("从水鬼的尸体中发现一枚金币\n\n");
}
if(p2==2) {
bj++;
printf("从水鬼的尸体中发现一个虎头枪\n\n");
}
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
}
void xb3() {
printf("你进入了峡谷寻宝地\n");
int m3;
m3=rand()%20+1;
if(m3==1||m3==2||m3==3||m3==4||m3==5||m3==6) {
coin++;
printf("获得一个金币\n\n");
}
if(m3==7||m3==8||m3==9||m3==10||m3==11||m3==12) {
coin+=2;
printf("获得两个金币\n\n");
}
if(m3==13||m3==14||m3==15||m3==16) {
myhp-=2;
printf("你没注意,摔了一跤,生命值-2\n\n");
}
if(m3==17||m3==18) {
wll++;
printf("在峡谷中发现一座山洞,洞中似有人烟\n");
printf("你仔细搜寻了一番,获得法宝:五雷令\n\n");
}
if(m3==19) {
qkhtf++;
printf("突然风雨大作,天雷滚滚,一道金光从高空掠过,最后落在你身前\n");
printf("你屈身向前,发现一个乾坤袋,打开后,里面有张符\n");
printf("获得:乾坤护体符\n\n");
}
if(m3==20) {
jgz++;
printf("突然晴空大开,万里无云,天空中出现一道彩虹,一只镯子从天上飞下\n");
printf("一个伟岸的声音在空中响起:“有缘人,今日吾将此物赠你,望珍重\n”");
printf("获得:金刚琢\n\n");
}
}
void enemy4() {
int n4;
if(fy>=6)
printf("你的防御较高,敌人攻击无效\n");
else
n4=rand()%3+1;
if(n4==1) {
myhp-=(6-fy);
printf("石像给你一拳,生命值-%d\n",6-fy);
}
if(n4==2) {
myhp-=(7-fy);
printf("石像发动全力一击,生命值-%d\n",7-fy);
}
if(n4==3) {
hp[3]+=4;
printf("石像使用技能——躯体修复\n");
printf("石像生命值回复4点\n");
}
}
void enemy5() {
int n5;
if(fy>=8)
printf("你的防御较高,敌人攻击无效\n");
else
n5=rand()%7+1;
if(n5==1||n5==2) {
myhp-=(8-fy);
printf("法师使用火魔法,你的生命值-%d\n",9-fy);
}
if(n5==3||n5==4) {
myhp-=(7-fy);
hp[4]+=2;
printf("法师使用水魔法,你的生命值-%d,他的生命值+2\n",8-fy);
}
if(n5==5||n5==6) {
hp[4]+=3;
printf("法师使用土魔法,他的生命值+3\n");
if(hp[4]>12) {
hp[4]=15;
} else
hp[4]+=3;
}
if(n5==7) {
myhp-=8;
printf("法师使用技能——元素裂变\n");
printf("无视防御!对你造成8点固定伤害!\n");
}
}
void enemy6() {
int n6;
if(fy>=7)
printf("你的防御较高,敌人攻击无效\n");
else
n6=rand()%2+1;
if(n6==1) {
myhp-=(7-fy);
printf("关公挥舞大刀斩向你,生命值-%d\n",7-fy);
}
if(n6==2) {
myhp-=(9-fy);
printf("关公发动技能——青龙偃月斩\n");
printf("造成大量伤害!你的生命值-%d\n",9-fy);
}
}
void lk() {
printf("在崎岖的峡谷中艰难前行\n\n");
int g;
g=rand()%5+1;
if(g==1||g==2) {
xb3();
}
if(g==3) {
printf("一个巨大的石像横在你面前\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h1;
scanf("%d",&h1);
switch(h1) {
case 1:
while(myhp>0&&hp[3]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i1;
scanf("%d",&i1);
switch(i1) {
case 1:
if(gj>4) {
hp[3]-=(gj-4);//石像的防御值为4
enemy4();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy4();
}
break;
case 2:
zddj(hp[3]);
enemy4();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[3]<=0) {
printf("你获得了胜利\n\n");
int p1;
p1=rand()%4+1;
if(p1==1) {
coin+=2;
printf("从石像的尸体中发现两枚金币\n\n");
}
if(p1==2) {
tj++;
printf("从石像的尸体中发现一个铁甲\n\n");
}
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
if(g==4) {
printf("一个白胡子法师从天而降,来者不善\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h2;
scanf("%d",&h2);
switch(h2) {
case 1:
while(myhp>0&&hp[4]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i2;
scanf("%d",&i2);
switch(i2) {
case 1:
if(gj>0) {
hp[4]-=(gj-2);//法师的防御值为2
enemy5();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy5();
}
break;
case 2:
zddj(hp[4]);
enemy5();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[4]<=0) {
printf("你获得了胜利\n\n");
int p2;
p2=rand()%7+1;
if(p2==1) {
coin+=2;
printf("从法师的尸体中发现两枚金币\n\n");
}
if(p2==2) {
jjb++;
printf("从法师的尸体中发现一个急救包\n\n");
}
if(p2==3) {
hyfz++;
printf("从法师的尸体中发现一个火焰符咒\n\n");
}
if(p2==4) {
myhp-=3;
printf("你不小心把法师随身携带的毒药打翻了,生命值-3\n\n");
}
if(p2==5) {
myhp+=3;
printf("你喝下了法师随身携带的治疗药水,生命值+3\n\n");
}
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
if(g==5) {
printf("峡谷深处传来嘶嘶马鸣,如惊雷一般,突然,关公驾马出现在你面前\n");
printf("你的选择是:1.战斗 2.逃跑\n");
int h3;
scanf("%d",&h3);
switch(h3) {
case 1:
while(myhp>0&&hp[5]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i3;
scanf("%d",&i3);
switch(i3) {
case 1:
if(gj>0) {
hp[5]-=(gj-3);//关公的防御值为3
enemy6();
} else {
printf("你的攻击力太低,攻击无效!\n");
enemy6();
}
break;
case 2:
zddj(hp[5]);
enemy6();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(hp[5]<=0) {
printf("你获得了胜利\n\n");
int p3;
p3=rand()%5+1;
if(p3==1) {
coin+=2;
printf("从关公的尸体中发现两枚金币\n\n");
}
if(p3==2) {
qld++;
printf("从关公的尸体中发现青龙刀\n\n");
}
if(p3==3) {
yydp++;
printf("从关公的尸体中发现月影斗篷\n\n");
}
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
}
void boss1() {
int n11;
if(fy>=15)
printf("你的防御较高,敌人攻击无效\n");
else
n11=rand()%6+1;
if(n11==1||n11==2||n11==3) {
myhp-=(15-fy);
printf("莫顿发动技能——深渊斩\n");
printf("造成大量伤害!你的生命值-%d\n",15-fy);
}
if(n11==4) {
myhp-=(17-fy);
printf("莫顿发动技能——深渊怒吼\n");
printf("造成大量伤害!你的生命值-%d\n",17-fy);
}
if(n11==5) {
printf("莫顿发动技能——深渊庇佑\n");
printf("莫顿生命值回复10点\n");
if(HP[0]>=30) {
HP[0]=30;
} else
HP[0]+=10;
}
if(n11==6) {
myhp-=8;
HP[0]-=5;
printf("莫顿发动技能——深渊绝命击\n");
printf("无视防御,对你造成8点伤害,同时莫顿自身扣除5点生命值\n");
}
}
void ygb() {
printf("在昏暗危险的深渊行走,四周充斥着各种恐怖的咆哮声\n\n");
int m;
m=rand()%11+1;
if(m<11) {
printf("暂未开启\n\n");
}
if(m==11) {
printf("忽然,一个庞大的身影从深渊之中缓缓走出\n");
printf("一一呵呵,你好,远道而来的人,现在你来到了我的面前,不知是幸运还是不幸。在我们交手之前,先听我讲个故事吧\n");
printf("一一我是深渊外围的至强者——莫顿,当年我只身闯入最后的禁地——威廉湖,只想看看此处的最强怪物是谁,并与之战斗\n");
printf("一一而当我击杀了威廉湖畔的几个强大生物,往湖中央游去时,却发现那儿别有洞天\n");
printf("一一湖中央居然有个小岛,岛上是一座庞大的神殿,神殿大门口有块匾,上面写着《万神殿》\n");
printf("一一我兴奋地走了进去,幻想着获得大机缘,然后我发现,大殿中央全是雄伟的墓碑,两旁则是一排排高大的石像\n");
printf("一一也许是打扰了神迹,万神殿的守护者突然出现,他实在太强,我完全抵挡不住,被他击杀\n");
printf("一一可能是看我实力尚可,便让我做了深渊外围的守护者,并且在外围和威廉湖之间布下了剧毒的瘴气\n");
printf("一一我的使命,既是守护神的安宁,也为了等待真正的强者,试着去撼动这个神迹,而你,此时出现在我面前\n");
printf("一一现在你可以选择离开或是与我战斗,当然,如果你战胜了我,我会为赠送你一个物件,可以防御瘴气,让你进入威廉湖\n\n");
printf("一一那么,请做出你的选择:1.战斗 2.离开\n");
int n;
scanf("%d",&n);
switch(n) {
case 1:
printf("哈哈哈,很好,终于可以活动一下筋骨了\n");
while(myhp>0&&HP[0]>0) {
printf("1.攻击 2.道具 3.逃跑\n");
int i1;
scanf("%d",&i1);
switch(i1) {
case 1:
if(gj>0) {
HP[0]-=(gj-10);//莫顿的防御值为10
boss1();
} else
printf("你的攻击力太低,攻击无效!\n");
boss1();
break;
case 2:
zddj(HP[0]);
boss1();
break;
case 3:
printf("逃跑成功!\n\n");
break;
}
}
if(HP[0]<=0) {
printf("\n咳咳,恭喜你战胜了我,哈哈,证明你有实力窥探神迹!\n");
printf("那么,到我兑现承诺的时候了,当然,我也会助你一臂之力\n");
printf("获得十枚金币\n");
printf("这是我以前偶然获得的法宝——神兽血,现在送给你\n");
printf("获得道具:神兽血\n");
printf("还有这个,这是百草丹,含于口中,百毒不侵,可使你通过瘴气,进入威廉湖\n");
printf("获得道具:百草丹\n\n");
coin+=10;
ssx++;
bcd++;
printf("恭喜你,威廉湖已开放!\n\n");
}
if(myhp<=0) {
printf("你战败了\n\n");
myhp=0;
}
break;
case 2:
printf("逃跑成功!\n\n");
break;
}
}
}
void wl() {
printf("暂未开启\n");
}版权声明:本文为Zzq0213原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。