大型C语言小游戏——神魔

家电维修 2023-07-16 19:17www.caominkang.com家电维修技术

前言

这款小游戏我从小时候就开始构思想法,后来学习C后开始慢慢实现,虽然我小时候幻想的是3A大作形式的,但无奈现在能力有限,还是慢慢来,现在还在大学学习计算机相关专业,虽然不知道以后还会不会走编程这条路,但技多不压身。,实现这个小游戏的途中得到了CSDN不少大佬的帮助,在此感谢各位。

ps虽然游戏主体大体实现,雅各布深渊的小怪、威廉湖以及万神殿的小怪和最终boss还没有设置,字幕式输出、开始想要的升级方式嫌麻烦暂时没有弄,后续会不断更新,只会抽时间弄了。,为了方便新手阅读和学习(本人也是新手),通篇代码只要学到了循环、数组的部分,看懂的问题不大,如果有bug麻烦直接指出,有什么建议也可以直接和作者交流学习,感谢大家。。


这个小游戏是文字游戏,我做成了一个项目,分为三个文件

1.test.c

用于储存主函数

#include
#include"game.h"

int main()
{
	printf("游戏名《神魔》n");
	printf("研发Zorron");
 printf("作者出于兴趣研发了这款游戏,代码类型较为简单,若有建议可联系作者n");
	printf("勇士,请拿起你手上的武器,向强者发起挑战,去追求实力的巅峰n");
	printf("现在,你可以进行选择1.开始游戏   2.退出游戏n");
	int start=0;
	scanf("%d",&start);
	sitch(start){
		case 1:
			game();
		case 2:
			break;
	}
	return 0;
}

2.game.h

用于储存函数名以及头文件

#ifndef __GAME_H
#define __GAME_H

#include
#include
#include 


//各个函数 
void game();
void zt();
void q();
void fj();
void dj();
void bb();
void sd();
void jb();
void ymx();
void dt();
void xb1();
void enemy1();
void d();
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 l();


#endif

3.game.c

用于储存各类定义和主体函数

#include"game.h"

//各项定义
int x=0;//game函数执行参数
int bag;//bb函数执行参数
int eapons;//q函数执行参数
int armor;//fj函数执行参数
int items;//dj函数执行参数
int map=0;//dt函数执行参数
int shop;//sd函数的执行参数
int bar;//jb函数的执行参数
int adventure=0;//ymx函数的执行参数
int moutain=0;//d函数的执行参数
int river=0;//tk函数的执行参数
int ge=0;//lk函数的执行参数
int abyss=0;//ygb函数的执行参数
int lake=0;//l函数的执行参数
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,szy=0,txzyf=0;//稀有防具
int fb=0,hyfz=0,ll=0,xybhl=0,yt=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() {//游戏开始
	hile(1) {
		hile(x==0) {
			printf("接下来你可以进行选择1.查看状态  2.背包  3.地图  4.退出游戏n");
			scanf("%d",&x);
			hile(x==1) {
				zt();
				x=0;
			}
			hile(x==2) {
				bb();
				x=0;
			}
			hile(x==3) {
				dt();
				map=0;
				x=0;
			}
			hile(x==4) {
				x=-1;
			}
		}
	}
}

void zt() {//状态
 	printf("n攻击:%d 防御:%d 生命:%d 金币:%dnn",gj,fy,myhp,coin);
}

void bb() {
	printf("你的物品有n");
	printf("1.武器    2.防具    3.道具    4.返回n");
	scanf("%d",&bag);
	hile(bag==1) {
		q();
		bag=4;
	}
	hile(bag==2) {
		fj();
		bag=4;
	}
	hile(bag==3) {
		dj();
		bag=4;
	}
	hile(bag==4) {
		break;
	}
}

void q() {//武器
	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",&eapons);
	hile(eapons==1) {
		if(bs>0) {
			gj++;
			printf("你拿起了匕首,攻击+1nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==2) {
		if(mb>0) {
			gj+=2;
			printf("你拿起了木棒,攻击+2nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==3) {
		if(htq>0) {
			gj+=3;
			printf("你拿起了虎头枪,攻击+3nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==4) {
		if(qld>0) {
			gj+=4;
			printf("你拿起了青龙刀,攻击+4nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==5) {
		if(tjs>0) {
			gj+=5;
			printf("你拿起了太极扇,攻击+5nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==6) {
		if(zdqs>0) {
			gj+=12;
			printf("你拿起了紫电清霜,攻击+12nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==7) {
		if(jgz>0) {
			gj+=14;
			printf("你拿起了金刚琢,攻击+14nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==8) {
		if(lszc>0) {
			gj+=18;
			printf("你拿起了雷神之锤,攻击+18nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==9) {
		if(bxzr>0) {
			gj+=22;
			printf("你拿起了不朽之刃,攻击+22nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==10) {
		if(zszn>0) {
			gj+=30;
			printf("你拿起了诸神之怒,攻击+30nn");
		} else {
			printf("数量不足!nn");
		}
		eapons=11;
	}
	hile(eapons==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,szy,txzyf);
	printf("11.返回n");
	scanf("%d",&armor);
	hile(armor==1) {
		if(py>0) {
			fy++;
			printf("你穿上了皮衣,防御+1nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==2) {
		if(bj>0) {
			fy+=2;
			printf("你穿上了布甲,防御+2nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==3) {
		if(py>0) {
			fy+=3;
			printf("你穿上了铁甲,防御+3nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==4) {
		if(yydp>0) {
			fy+=4;
			printf("你穿上了月影斗篷,防御+4nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==5) {
		if(hyzj>0) {
			fy+=5;
			printf("你穿上了黑曜重甲,防御+5nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==6) {
		if(qkhtf>0) {
			fy+=10;
			printf("你穿上了乾坤护体符,防御+10nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==7) {
		if(jljs>0) {
			fy+=14;
			printf("你穿上了锦镧袈裟,防御+14nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==8) {
		if(szhjj>0) {
			fy+=18;
			printf("你穿上了锁子黄金甲,防御+18nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==9) {
		if(szy>0) {
			fy+=21;
			printf("你穿上了神王之佑,防御+21nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==10) {
		if(txzyf>0) {
			fy+=27;
			printf("你穿上了天行镇妖幡,防御+27nn");
		} else {
			printf("数量不足!nn");
		}
		armor=11;
	}
	hile(armor==11) {
		break;
	}
}

void dj() {//道具
	printf("飞镖%d个 火焰符咒%d个 五雷令%d个 降妖宝葫芦%d个n",fb,hyfz,ll,xybhl);
	printf("阎王贴%d个 神兽血%d个 天神审判%d个n",yt,ssx,tssp);
	printf("1.绷带%d个  2.急救包%d个  3.返回n",bd,jjb);
	scanf("%d",&items);
	hile(items==1) {
		if(myhp<30) {
			if(bd>0) {
				myhp+=1;
				bd--;
				printf("你回复了1点生命值nn");
			} else {
				printf("数量不足!nn");
			}
		} else {
			printf("血量已满,无法回复!nn");
		}
		items=3;
	}
	hile(items==2) {
		if(myhp<=20) {
			if(jjb>0) {
				myhp+=10;
				jjb--;
				printf("你回复了10点生命值nn");
			} else {
				printf("数量不足!nn");
			}
		} else {
			myhp=30;
			printf("你的血量已满nn");
		}
		items=3;
	}
	hile(items=3) {
		break;
	}
}

void dt() {//地图
	hile(map==0) {
		printf("你要去哪?n");
		printf("1.商店  2.酒吧  3.野外冒险  4.返回n");
		scanf("%d",&map);
		hile(map==1) {
			sd();
			map=0;
		}
		hile(map==2) {
			jb();
			map=0;
		}
		hile(map==3) {
			ymx();
			adventure=0;
			map=0;
		}
		hile(map==4) {
			map=1;
		}
	}
}

void sd() {//商店
	printf("n商店老板霍兹格“欢迎光临!您需要些什么?”nn");
	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);
	hile(shop==1) {
		if(coin>1) {
			coin--;
			bs++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==2) {
		if(coin>1) {
			coin--;
			py++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==3) {
		if(coin>5) {
			coin-=5;
			mb++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==4) {
		if(coin>5) {
			coin-=5;
			bj++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==5) {
		if(coin>10) {
			coin-=10;
			bd++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==6) {
		if(coin>10) {
			coin-=10;
			fb++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==7) {
		if(coin>15) {
			coin-=15;
			jjb++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==8) {
		if(coin>15) {
			coin-=15;
			hyfz++;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop==9) {
		if(coin>66) {
			coin-=30;
			myhp=30;
			printf("购买完毕,你还有%d个金币nn",coin);
		} else
			printf("金币不足!nn");
		shop=10;
	}
	hile(shop=10) {
		break;
	}
}

void jb() {//酒吧
	printf("n夕阳黄昏的映照下,酒吧显得格外冷清,只有为数不多的几人在喝着酒n");
	printf("路人甲“哈哈,听说了吗,好像有个新来的小子到咱镇上来了”时不时往你这边瞟几眼n");
	printf("路人乙“那又怎样,一旦他去了野外,那一定是凶多吉少啊!”说完,冷笑着喝了口酒nn");
	printf("请选择要聊天的对象1.酒吧老板 2.服务员 3.离开n");
	scanf("%d",&bar);
	hile(bar==1) {
		printf("n你好呀,我是酒吧老板豪斯,很高兴认识你,初次见面,给你个小礼物吧。nn");
		if(gift==0) {
			printf("获得一把匕首nn");
			bs++;
			gift=1;
		} else {
			printf("您已获得过礼物。n");
		}
		printf("1.返回n");
		int a;
		scanf("%d",&a);
		if(a=1)
		bar=0;
	}
	hile(bar==2) {
		printf("n最近镇子不太平,唉,电脑维修网希望没什么事儿。n");
		printf("对了,你是新来的吧,我给你介绍一下镇子外的概况吧n");
		printf("出了镇子就是绵延无际的乌达山脉,而乌达山脉深处有一条叫做塔克河的河流,河流最终引向洛克峡谷,洛克峡谷中呢又有一处叫做雅各布深渊的地方n");
		printf("那个地方特别恐怖!暗无天日,怪物横行,遍地都是死尸和骸骨,我劝你啊,千万不要去那儿!n");
		printf("至于其他的,我就不太清楚了,我只听说,在尸横遍野的雅各布深渊中央,是一面平静如镜的湖,湖周围生机盎然,仿佛人间仙境n");
		printf("更神奇的是,听说湖中央还有一座岛,岛上有座神殿,埋葬了这个世界的所有至强者!哈哈哈哈,听起来是不是很激动!n");
		printf("但关于万神殿,更像是传说,因为,咱们镇子上根本就没人去过!nn");
		printf("1.返回n");
		int b;
		scanf("%d",&b);
		if(b=1)
		bar=0;
	}
	hile(bar==3) {
		break;
	}
}

void ymx() {//野外冒险
	hile(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);
		hile(adventure==1) {
			d();
			adventure=0;
		}
		hile(adventure==2) {
			tk();
			adventure=0;
		}
		hile(adventure==3) {
			lk();
			adventure=0;
		}
		hile(adventure==4) {
			ygb();
			adventure=0;
		}
		hile(adventure==5) {
			if(bcd==1) {
				l();
			} else {
				printf("n你无法通过雅各布深渊与威廉湖之间的毒气屏障!nn");
			}
			adventure=0;
		}
		hile(adventure==6) {
			adventure=-1;
		}
	}
	hile(myhp<=0) {
		printf("你的生命值太低,无法进行野外冒险!!nn");
		break;
	}
}

void zddj(int hp) {//战斗道具
	printf("1.飞镖%d个 2.火焰符咒%d个 3.五雷令%d个 4.降妖宝葫芦%d个n",fb,hyfz,ll,xybhl);
	printf("5.阎王贴%d个 6.神兽血%d个 7.天神审判%d个n",yt,ssx,tssp);
	printf("8.绷带%d个  9.急救包%d个 10.返回n",bd,jjb);
	int j;
	scanf("%d",&j);
	sitch(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(ll>0) {
				ll--;
				hp-=15;
			} else
				printf("数量不足!n");
			break;
		case 4:
			if(xybhl>0) {
				xybhl--;
				hp-=20;
			} else
				printf("数量不足!n");
			break;
		case 5:
			if(yt>0) {
				yt--;
				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("获得一个金币nn");
	}
	if(m==4) {
		myhp--;
		printf("你没注意,摔了一跤,生命值-1nn");
	}
}

void enemy1() {
	int n;
	if(fy>=3)
		printf("你的防御较高,敌人攻击无效n");
	else
		n=rand()%4+1;
	if(n==1||n==2) {
		myhp-=(4-fy);
		printf("狼咬了你一口,生命值-%dn",4-fy);
	}
	if(n==3) {
		myhp-=(3-fy);
		printf("狼抓了你一下,生命值-%dn",3-fy);
	}
	if(n==4) {
		myhp-=(5-fy);
		printf("狼对你疯狂撕咬,生命值-%dn",5-fy);
	}
}

void d() {
	printf("在丛林茂密的山中行走nn");
	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);
		sitch(h1) {
			case 1:
				hile(myhp>0&&hp[0]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i1;
					scanf("%d",&i1);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[0]<=0) {
					printf("你获得了胜利nn");
					int p1;
					p1=rand()%5+1;
					if(p1==1) {
						coin++;
						printf("从狼的尸体中发现一枚金币nn");
					}
					if(p1==2) {
						mb++;
						printf("从狼的尸体中发现一个木棒nn");
					}
				}
				if(myhp<=0&&hp[0]>0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				break;
		}
	}
}

void xb2() {
	printf("你进入了河流寻宝地n");
	int m2;
	m2=rand()%12+1;
	if(m2>=1 && m2<7) {
		coin++;
		printf("获得一个金币nn");
	}
	if(m2>=7&&m2<12) {
		myhp--;
		printf("你没注意,摔了一跤,生命值-1nn");
	}
	if(m2==12) {
		zdqs++;
		printf("河底的淤泥中,有什么东西闪闪发光,锋芒毕露n");
		printf("在河流中挖出宝剑——紫电清霜nn");
	}
}

void enemy2() {
	int n2;
	if(fy>=5)
		printf("你的防御较高,敌人攻击无效n");
	else
		n2=rand()%4+1;
	if(n2==1||n2==2) {
		myhp-=(5-fy);
		printf("公牛鲨咬了你一口,生命值-%dn",5-fy);
	}
	if(n2==3) {
		myhp-=(6-fy);
		printf("公牛鲨对你疯狂撕咬,生命值-%dn",6-fy);
	}
	if(n2==4) {
		myhp-=(8-fy);
		printf("公牛鲨使用技能——狂鲨突袭n");
		printf("造成大量伤害!你的生命值-%dn",8-fy);
	}
}

void enemy3() {
	int n3;
	if(fy>=6)
		printf("你的防御较高,敌人攻击无效n");
	else
		n3=rand()%3+1;
	if(n3==1) {
		myhp-=(6-fy);
		printf("水鬼给你一记重拳,生命值-%dn",6-fy);
	}
	if(n3==2) {
		myhp-=(7-fy);
		printf("水鬼将你拖进水底,你呼吸困难,生命值-%dn",7-fy);
	}
	if(n3==3) {
		myhp-=(8-fy);
		printf("水鬼使用技能——踏浪迎击n");
		printf("造成大量伤害!你的生命值-%dn",9-fy);
	}
}

void tk() {
	printf("在湍急的河流中艰难跋涉\nn");
	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);
		sitch(h1) {
			case 1:
				hile(myhp>0&&hp[1]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i1;
					scanf("%d",&i1);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[1]<=0) {
					printf("你获得了胜利nn");
					int p1;
					p1=rand()%5+1;
					if(p1==1) {
						coin++;
						printf("从公牛鲨的尸体中发现一枚金币nn");
					}
					if(p1==2) {
						bj++;
						printf("从公牛鲨的尸体中发现一个布甲nn");
					}
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				break;
		}
	}
	if(g=4) {
		printf("一只水鬼冲了过来!n");
		printf("你的选择是1.战斗   2.逃跑n");
		int h2;
		scanf("%d",&h2);
		sitch(h2) {
			case 1:
				hile(myhp>0&&hp[2]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i2;
					scanf("%d",&i2);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[2]<=0) {
					printf("你获得了胜利nn");
					int p2;
					p2=rand()%5+1;
					if(p2==1) {
						coin++;
						printf("从水鬼的尸体中发现一枚金币nn");
					}
					if(p2==2) {
						bj++;
						printf("从水鬼的尸体中发现一个虎头枪nn");
					}
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				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("获得一个金币nn");
	}
	if(m3==7||m3==8||m3==9||m3==10||m3==11||m3==12) {
		coin+=2;
		printf("获得两个金币nn");
	}
	if(m3==13||m3==14||m3==15||m3==16) {
		myhp-=2;
		printf("你没注意,摔了一跤,生命值-2nn");
	}
	if(m3==17||m3==18) {
		ll++;
		printf("在峡谷中发现一座山洞,洞中似有人烟n");
		printf("你仔细搜寻了一番,获得法宝五雷令nn");
	}
	if(m3==19) {
		qkhtf++;
		printf("突然风雨大作,天雷滚滚,一道金光从高空掠过,落在你身前n");
		printf("你屈身向前,发现一个乾坤袋,打开后,里面有张符n");
		printf("获得乾坤护体符nn");
	}
	if(m3==20) {
		jgz++;
		printf("突然晴空大开,万里无云,天空中出现一道彩虹,一只镯子从天上飞下n");
		printf("一个伟岸的声音在空中响起“有缘人,今日吾将此物赠你,望珍重n”");
		printf("获得金刚琢nn");
	}
}

void enemy4() {
	int n4;
	if(fy>=6)
		printf("你的防御较高,敌人攻击无效n");
	else
		n4=rand()%3+1;
	if(n4==1) {
		myhp-=(6-fy);
		printf("石像给你一拳,生命值-%dn",6-fy);
	}
	if(n4==2) {
		myhp-=(7-fy);
		printf("石像发动全力一击,生命值-%dn",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("法师使用火魔法,你的生命值-%dn",9-fy);
	}
	if(n5==3||n5==4) {
		myhp-=(7-fy);
		hp[4]+=2;
		printf("法师使用水魔法,你的生命值-%d,他的生命值+2n",8-fy);
	}
	if(n5==5||n5==6) {
		hp[4]+=3;
		printf("法师使用土魔法,他的生命值+3n");
		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("关公挥舞大刀斩向你,生命值-%dn",7-fy);
	}
	if(n6==2) {
		myhp-=(9-fy);
		printf("关公发动技能——青龙偃月斩n");
		printf("造成大量伤害!你的生命值-%dn",9-fy);
	}
}

void lk() {
	printf("在崎岖的峡谷中艰难前行nn");
	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);
		sitch(h1) {
			case 1:
				hile(myhp>0&&hp[3]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i1;
					scanf("%d",&i1);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[3]<=0) {
					printf("你获得了胜利nn");
					int p1;
					p1=rand()%4+1;
					if(p1==1) {
						coin+=2;
						printf("从石像的尸体中发现两枚金币nn");
					}
					if(p1==2) {
						tj++;
						printf("从石像的尸体中发现一个铁甲nn");
					}
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				break;
		}
	}
	if(g==4) {
		printf("一个白胡子法师从天而降,来者不善n");
		printf("你的选择是1.战斗   2.逃跑n");
		int h2;
		scanf("%d",&h2);
		sitch(h2) {
			case 1:
				hile(myhp>0&&hp[4]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i2;
					scanf("%d",&i2);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[4]<=0) {
					printf("你获得了胜利nn");
					int p2;
					p2=rand()%7+1;
					if(p2==1) {
						coin+=2;
						printf("从法师的尸体中发现两枚金币nn");
					}
					if(p2==2) {
						jjb++;
						printf("从法师的尸体中发现一个急救包nn");
					}
					if(p2==3) {
						hyfz++;
						printf("从法师的尸体中发现一个火焰符咒nn");
					}
					if(p2==4) {
						myhp-=3;
						printf("你不小心把法师随身携带的毒药打翻了,生命值-3nn");
					}
					if(p2==5) {
						myhp+=3;
						printf("你喝下了法师随身携带的治疗药水,生命值+3nn");
					}
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				break;
		}
	}
	if(g==5) {
		printf("峡谷深处传来嘶嘶马鸣,如惊雷一般,突然,关公驾马出现在你面前n");
		printf("你的选择是1.战斗   2.逃跑n");
		int h3;
		scanf("%d",&h3);
		sitch(h3) {
			case 1:
				hile(myhp>0&&hp[5]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i3;
					scanf("%d",&i3);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(hp[5]<=0) {
					printf("你获得了胜利nn");
					int p3;
					p3=rand()%5+1;
					if(p3==1) {
						coin+=2;
						printf("从关公的尸体中发现两枚金币nn");
					}
					if(p3==2) {
						qld++;
						printf("从关公的尸体中发现青龙刀nn");
					}
					if(p3==3) {
						yydp++;
						printf("从关公的尸体中发现月影斗篷nn");
					}
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
			case 2:
				printf("逃跑成功!nn");
				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("造成大量伤害!你的生命值-%dn",15-fy);
	}
	if(n11==4) {
		myhp-=(17-fy);
		printf("莫顿发动技能——深渊怒吼n");
		printf("造成大量伤害!你的生命值-%dn",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("在昏暗危险的深渊行走,四周充斥着各种恐怖的咆哮声nn");
	int m;
	m=rand()%11+1;
	if(m<11) {
		printf("暂未开启nn");
	}
	if(m==11) {
		printf("忽然,一个庞大的身影从深渊之中缓缓走出n");
		printf("一一呵呵,你好,远道而来的人,现在你来到了我的面前,不知是幸运还是不幸。在我们交手之前,先听我讲个故事吧n");
		printf("一一我是深渊外围的至强者——莫顿,当年我只身闯入的禁地——威廉湖,只想看看此处的最强怪物是谁,并与之战斗n");
		printf("一一而当我击杀了威廉湖畔的几个强大生物,往湖中央游去时,却发现那儿别有洞天n");
		printf("一一湖中央居然有个小岛,岛上是一座庞大的神殿,神殿大门口有块匾,上面写着《万神殿》n");
		printf("一一我兴奋地走了进去,幻想着获得大机缘,然后我发现,大殿中央全是雄伟的墓碑,两旁则是一排排高大的石像n");
		printf("一一也许是打扰了神迹,万神殿的守护者突然出现,他实在太强,我完全抵挡不住,被他击杀n");
		printf("一一可能是看我实力尚可,便让我做了深渊外围的守护者,并且在外围和威廉湖之间布下了剧毒的瘴气n");
		printf("一一我的使命,既是守护神的安宁,也为了等待真正的强者,试着去撼动这个神迹,而你,此时出现在我面前n");
		printf("一一现在你可以选择离开或是与我战斗,,如果你战胜了我,我会为赠送你一个物件,可以防御瘴气,让你进入威廉湖nn");
		printf("一一那么,请做出你的选择1.战斗 2.离开n");
		int n;
		scanf("%d",&n);
		sitch(n) {
			case 1:
				printf("哈哈哈,很好,终于可以活动一下筋骨了n");
				hile(myhp>0&&HP[0]>0) {
					printf("1.攻击   2.道具 3.逃跑n");
					int i1;
					scanf("%d",&i1);
					sitch(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("逃跑成功!nn");
							break;
					}
				}
				if(HP[0]<=0) {
					printf("n咳咳,恭喜你战胜了我,哈哈,证明你有实力窥探神迹!n");
					printf("那么,到我兑现承诺的时候了,,我也会助你一臂之力n");
					printf("获得十枚金币n");
					printf("这是我以前偶然获得的法宝——神兽血,现在送给你n");
					printf("获得道具神兽血n");
					printf("还有这个,这是百草丹,含于口中,百毒不侵,可使你通过瘴气,进入威廉湖n");
					printf("获得道具百草丹nn");
					coin+=10;
					ssx++;
					bcd++;
					printf("恭喜你,威廉湖已开放!nn");
				}
				if(myhp<=0) {
					printf("你战败了nn");
					myhp=0;
				}
				break;
			case 2:
				printf("逃跑成功!nn");
				break;
		}
	}
}

void l() {
	printf("暂未开启n");
}

Copyright © 2016-2025 www.jianfeikang.com 建飞家电维修 版权所有 Power by