自制游戏——斗罗大陆

很简陋,没有图,请见谅

cpp 复制代码
// mine[0] = 级数
// mine[1] = 战力
//mine[2] = 1 == 白虎
//mine[2] = 2 == 昊天锤
//mine[2] = 3 == 蓝银草
#include <bits/stdc++.h>
using namespace std;
int mine[100],live=3, dou = 1, luo = 1, da = 1, bag[1000], huan = 0, liang = 30;
long long huannian[100];
void jianjie() {
	cout << "这里没有魔法,没有武术,却有神奇的武魂。" << endl;

	cout << "这里的每个人在6岁的时候,都会在武魂殿中在魂师的帮助下进行武魂觉醒。" << endl;

	cout << "武魂有动物,有植物,有器物,武魂可以辅助人们的日常生活,有特殊天赋的人可以用之修炼并进行战斗。" << endl;

	cout << "有武魂且可以修炼而且级数在10级以上的被称为魂师。每个人都有级数,总共是1~100级,而每一个级数段位都有一个称号。" << endl;

	cout << "而1~9级是魂士;10~19级是魂师;20~29级是大魂师;30~39级是魂尊;40~49级是魂宗;50~59级是魂王;60~69级是魂帝;70~79级是魂圣;80~89级是魂斗罗;90~99级是封号斗罗。" << endl;
	cout << "封号斗罗又可分为90~94级普通封号斗罗,95~98级超级斗罗,99级极限斗罗" << endl;

	cout << "而且,每10级又可以吸收一个魂环,魂环等级又分为:" << endl;

	cout << "1,十年魂环(白色):任何魂士都可以吸入,最常见的魂环,也是最低级的,有条件的魂师都不会选择吸入这种魂环,拥有一个技能。" << endl;
	cout << "2,百年魂环(黄色):魂士可以吸入423年以下,魂师可以吸入764年以下,较为稀有,拥有一个技能。" << endl;
	cout << "3,千年魂环(紫色):魂尊可以吸收1760年以下,魂宗可以吸收5000年以下,较为罕见,拥有一个技能。" << endl;
	cout << "4,万年魂环(黑色):魂王可以吸入12000年以下,魂帝可以吸收20000年以下,魂圣可以吸收50000年以下,魂斗罗可以吸收所有万年魂环,极为罕见!拥有一个技能。" << endl;
	cout << "5,十万年魂环(红色):封号斗罗级,极致武魂或体质的原因才能吸入,拥有一个技能。" << endl;
	cout << "若超过吸收年限则是越级吸收,越级吸收过程中极其痛苦,失败了就会爆体而亡!" << endl;
	_sleep(1 * 2000);
	cout << endl;
}
int sui(int n, int m) {
	random_device rd;
	mt19937 reng(rd());
	uniform_int_distribution<int> sum(n, m);
	return sum(reng);
}
int hunji() {
	mine[2] += mine[0];
	cout << "乱披风之舞" << endl;
	if (huan >= 1) {
		cout << "泰坦苍穹破" << endl;
		cout << "重力沼泽" << endl;
	}
	cout << "抓" << endl;
	if (huan >= 2) cout << "锤撼天地" << endl;
	cout << "咬" << endl;
	if (huan >= 3) cout << "旋风狂舞" << endl;
	cout << "挠" << endl;
	if (huan >= 4) cout << "邪神破" << endl;
	cout << "毒液" << endl;
	if (huan >= 5) cout << "绚烂之爆" << endl;
	if (huan >= 6) cout << "大地蚁皇斩" << endl;
	if (huan >= 7) cout << "昊天真身" << endl;
	if (huan >= 8) cout << "千钧壁垒" << endl;
	if (huan >= 9) cout << "大须弥锤" << endl;
	if (huan >= 10) cout << "修罗结界" << endl;
}
int doupan() {
	if (mine[1] > liang) {
		cout << "胜利!" << endl;
		mine[0] += 1;
		da += 1;
		liang += 100;
	} else {
		cout << "你输了" << endl;
		live-=1;
		cout << "生命-1";
		cout << " 剩余生命" << live << endl; 
	}
	return mine[100], da, liang,live;
}
void qianqingtiyao() {
	cout << "你睁开了眼睛" << endl;
	cout << "我";
	cout << "这是要死了吗?" << endl;
	cout << "不!!!" << endl;
	cout << "我要活着!!!" << endl;
	cout << "你又睁开了眼睛" << endl;
	cout << "我";
	cout << "这是在哪?" << endl;
	cout << "斗罗世界的生存竞争" << endl;
	cout << "拉开了序幕" << endl;
	cout << endl;
}
int kaihun() {
	_sleep(1*500);
	int n1,wuhun;
	n1 = sui(4, 10);
	wuhun = 2;
	int sdffs;
	cout << "你随着杰克长老进行开魂" << endl;
	cout << "你将手放在了上面" << endl;
	cout << "请输入你想要的初始魂力:";
	cout << "顿时,魂力球大放光彩" << endl;
	_sleep(1*100); 
	cout << "你是" << n1 << "级的" << endl;
	mine[0] = n1;
	mine[1] = mine[0] * 34;
	mine[2] = wuhun;
	cout  << "你的武魂竟是昊天锤" << endl;
	cout << "你的目标是:";
	cout << "达到500000" << endl;
	return mine[100];
}
int thing() {
	int num;
	cout << endl;
	cout << "战力:" << mine[1] << "      级数:" << mine[0] << endl;
	cout << "--------------------事件-------------------" << endl;
	cout << "[1]斗罗之路 [2]魂兽森林 [3]人物 [4]结束游戏" << endl;
	cout << "您选择:";
	cin >> num;
	return num;
}
int duida(int douluodalu()) {
	switch (da) {
		case 1:
			cout << "    " << da << endl;
			_sleep(1 * 5000);
			hunji();
			doupan();
			break;
		case 2:
			cout << "    " << da << endl;
			_sleep(1 * 1000);
			hunji();
			doupan();
			break;
		case 3:
			cout << "    " << da << endl;
			_sleep(1 * 1000);
			douluodalu();
			_sleep(1 * 1000);
			hunji();
			doupan();
			if (da > 3) {
				da = 1;
				luo += 1;
			}
			if (luo > 3) {
				luo = 1;
				dou += 1;
			}
			break;
	}
	return da, luo;
}
int dou1luo1() {
	cout << "看门人:你是什么人?" << endl;
	cout << "                                  我是来上课的学生:唐三" << endl;
	cout << "看门人:交钱,不交就给我滚开!" << endl;
	cout << "            你别血口喷人,你看好了,这是我的邀请书:唐三" << endl;
	cout << "看门人:假的吧?先过了我这一关再说!" << endl;
	cout << "                                      来啊,谁怕谁:唐三" << endl;
}
int dou1luo2() {
	cout << "原社长:你是什么人?" << endl;
	cout << "                                  我是来住宿的学生:唐三" << endl;
	cout << "原社长:看来又要打一架了。" << endl;
	cout << "                                          什么意思:唐三" << endl;
	cout << "原社长:我是社长,只要有新来的学生,我就要和他打一架!" << endl;
	cout << "                                我准备好了,开始吧:唐三" << endl;
}
int dou1luo3() {
	cout << "小舞:我叫小舞,跳舞的"舞"。" << endl;
	cout << "                                  我叫唐三:唐三" << endl;
	cout << "小舞:一环大魂师,请指教。" << endl;
}
int dou1() {
	switch (luo) {
		case 1:
			cout << "     一" << endl;
			cout << "看门人的侮辱" << endl;
			duida(dou1luo1);
			break;
		case 2:
			cout << "     二" << endl;
			cout << "宿舍中的较量" << endl;
			duida(dou1luo2);
			break;
		case 3:
			cout << "     三" << endl;
			cout << "小舞的出现" << endl;
			duida(dou1luo3);
			break;
	}
}
int dou2luo1() {
	cout << "火舞:一群小垃圾!" << endl;
	cout << "                                        说什么呢你:唐三" << endl;
	cout << "火舞:没什么,只是觉得你太弱了!" << endl;
	cout << "                                        凭实力说话:唐三" << endl;
	cout << "火舞:好啊,赛场上见!" << endl;
}
int dou2luo2() {
	cout << "风笑天:你欺负火舞!" << endl;
	cout << "                                不,我还帮了她一把:唐三" << endl;
	cout << "风笑天:放**的**,我现在就要惩罚你这个厚颜无耻之人。" << endl;
	cout << "                            不是,我真没把她怎么样:唐三" << endl;
	cout << "风笑天:哼!来吧!" << endl;
}
int dou2luo3() {
	cout << "比比东:十万年魂兽,拿下那个小女孩" << endl;
	cout << "                                   不许你们伤害她:唐三" << endl;
	cout << "比比东:唐三,我承认你很有天赋,可惜你是我的敌人。" << endl;
	cout << "                                    你想要怎么样:唐三" << endl;
	cout << "比比东:杀了他们!" << endl;
}
int dou2() {
	switch (luo) {
		case 1:
			cout << "     一" << endl;
			cout << "第一场对决" << endl;
			duida(dou2luo1);
			break;
		case 2:
			cout << "     二" << endl;
			cout << "风笑天" << endl;
			duida(dou2luo2);
			break;
		case 3:
			cout << "     三" << endl;
			cout << "我的小舞" << endl;
			duida(dou2luo3);
			break;
	}
}
int dou3luo1() {
	cout << "狼盗:抓住他们!" << endl;
	cout << "                              不好,他们越来越多了:唐三" << endl;
}
int dou3luo2() {
	cout << "深海魔晶王:食物来了!" << endl;
	cout << "                                    谁死还不一定呢:唐三" << endl;
	cout << "深海魔晶王:有点意思,就是你们太弱了!" << endl;
}
int dou3luo3() {
	cout << "波塞西:来吧,在我手中坚持一炷香!" << endl;
	cout << "                                    冒昧了,前辈:唐三" << endl;
	cout << "波塞西:一炷香记时,开始!" << endl;
}
int dou3() {
	switch (luo) {
		case 1:
			cout << "     一" << endl;
			cout << "狼盗劫路" << endl;
			duida(dou3luo1);
			break;
		case 2:
			cout << "     二" << endl;
			cout << "深海魔晶王" << endl;
			duida(dou3luo2);
			break;
		case 3:
			cout << "     三" << endl;
			cout << "海神九考" << endl;
			duida(dou3luo3);
			break;
	}
}
int douluo() {
	if (dou > 3) {
		cout << "斗罗之路已打完" << endl; 
		return 0;
	}
	cout << "第" << dou << "章第" << luo << "回--" << da << endl;
	switch (dou) {
		case 1:
			cout << "小舞的到来" << endl;
			dou1();
			break;
		case 2:
			cout << "精英大赛" << endl;
			dou2();
			break;
		case 3:
			cout << "成神之路" << endl;
			dou3();
			break;
	}
}
int wuhunpanding(int nian) {
	cout << "是" << nian << "的魂环" << endl;
	if (mine[0] / 10 != huan) {
		int num;
		cout << "是否吸收魂环?([1]是[2]否)";
		cin >> num;
		if (num == 1) {
			cout << "吸收中" << endl;
			huan += 1;
			huannian[mine[0] / 10] = nian;
			cout << "吸收成功" << endl;
		}
	}
}
int hunshoupan(int dizhan, int shou) {
	switch (shou) {
		case 1:
			cout << "是" << dizhan << "年的曼陀罗蛇!" << endl;
			break;
		case 2:
			cout << "是" << dizhan << "年的大地之王!" << endl;
			break;
		case 3:
			cout << "是" << dizhan << "年的大力金刚熊!" << endl;
			break;
		case 4:
			cout << "是" << dizhan << "年的狼盗!" << endl;
			break;
		case 5:
			cout << "是" << dizhan << "年的凤尾鸡冠蛇!" << endl;
			break;
		case 6:
			cout << "是" << dizhan << "年的天梦冰蚕!" << endl;
			break;
		case 7:
			cout << "是" << dizhan << "年的人面魔珠!" << endl;
			break;
		case 8:
			cout << "是" << dizhan << "年的大力金刚蚁!" << endl;
			break;
		case 9:
			cout << "是" << dizhan << "年的泰坦巨猿!" << endl;
			break;
		case 10:
			cout << "是" << dizhan << "年的天青牛蟒!" << endl;
			break;
	}
	int sum;
	cout << "是[1]逃跑[2]战斗" << endl;
	cin >> sum;
	if(sum == 1){
		cout << "逃跑成功" << endl;
		return 0;
	}	
	else{
	hunji();
	if (mine[1] >= dizhan) {
		cout << "战斗胜利" << endl;
		mine[0] += 1;
		_sleep(1 * 500);
		wuhunpanding(dizhan);
	} else {
		cout << "战斗失败" << endl;
		live-=1;
		cout << "生命-1";
		cout << " 剩余生命" << live << endl;
	}}
}
int hunshousenling1(int n, int m) {
	int shou = sui(1, 10);
	int num = sui(n, m);
	hunshoupan(num, shou);
}
int muohun(){
	cout << "正在进入魔魂大白鲨(10 0000年~50 0000年)" << endl;
	_sleep(1 * 1000);
	int nian = sui(100000,500000);
	cout << "是" << nian << "的魔魂大白鲨" << endl; 
	int sum;
	cout << "是[1]逃跑[2]战斗" << endl;
	cin >> sum;
	if(sum == 1){
		cout << "逃跑成功" << endl;
		return 0;
	}	
	else{
	hunji();
	if (mine[1] >= nian) {
		cout << "战斗胜利" << endl;
		mine[0] += 1;
		_sleep(1 * 500);
		wuhunpanding(nian);
	} else {
		cout << "战斗失败" << endl;
		live-=1;
		cout << "生命-1";
		cout << " 剩余生命" << live << endl;
	}}
}
int hunshousenling() {
	int num;
	cout << "[1]魂兽森林外围(一)(100年~500年)" << endl;
	if (dou > 1 || (dou == 1 && luo > 1 ) || (dou == 1 && luo == 1 && da > 1)) {
		cout << "[2]魂兽森林外围(二)(500年~800年)" << endl;
	}
	if (dou > 1 || (dou == 1 && luo > 1 ) || (dou == 1 && luo == 1 && da > 2)) {
		cout << "[3]魂兽森林外围(三)(800年~1000年)" << endl;
	}
	if (dou > 1 || (dou == 1 && luo > 2 ) || (dou == 1 && luo == 2 && da > 2)) {
		cout << "[4]魂兽森林中间(一)(1000年~1500年)" << endl;
	}
	if (dou >= 2) {
		cout << "[5]魂兽森林中间(二)(1500年~5000年)" << endl;
	}
	if (dou >= 2 || (dou>=2 && luo >= 1)) {
		cout << "[6]魂兽森林中间(三)(5000年~10000年)" << endl;
	}
	if (dou >= 3) {
		cout << "[7]魂兽森林深处(10000年~100000年)" << endl;
	}
	if (dou >= 3) {
		cout << "[8]魔魂大白鲨(10 0000年~20 0000年)" << endl;
	}
	cout << "你要去:";
	cin >> num;
	switch (num) {
		case 1:
			cout << "正在进入魂兽森林外围(一)(100年~500年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(100, 500);
			break;
		case 2:
			cout << "正在进入魂兽森林外围(二)(500年~800年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(500, 800);
			break;
		case 3:
			cout << "正在进入魂兽森林外围(三)(800年~1000年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(800, 1000);
			break;
		case 4:
			cout << "正在进入魂兽森林中间(一)(1000年~1500年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(1000, 1500);
			break;
		case 5:
			cout << "正在进入魂兽森林中间(二)(1500年~5000年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(1500, 5000);
			break;
		case 6:
			cout << "正在进入魂兽森林中间(三)(5000年~10000年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(5000, 10000);
			break;
		case 7:
			cout << "正在进入魂兽森林深处(10000年~100000年)" << endl;
			_sleep(1 * 1000);
			hunshousenling1(10000,100000);
			break;
		case 8:
			muohun();
			break;
		default:
			cout << "输入错误" << endl;
			break;
	}
}
int renwu(){
	cout << "现有" << mine[0] << "级" << endl;
	cout << "现有" << mine[1] << "战力" << endl;
	cout << "已吸收" << huan << "个魂环" << endl;
	cout << "剩余可吸收" << (mine[0]/10)-huan << "个魂环" << endl;
	for(int i=1;i<=huan;i++){
		cout << i << "个魂环" << huannian[i] << endl;
	}
	
}
int main() {
	qianqingtiyao();
	jianjie();
	kaihun();
	while (live > 0) {
		switch (thing()) {
			case 1:
				cout << "----------------------斗罗之路-----------------------" << endl;
				douluo();
				mine[1] = mine[0] * 34;
				for (int i = 1; i <= 10; i++) {
					mine[1] += huannian[i];
				}
				if (mine[1] >= 500000) {
					_sleep(1 * 1000);
					cout << "恭喜你,成了一代霸主!" << endl;
					return 0;
				}
				break;
			case 2:
				cout << "----------------------魂兽森林-----------------------" << endl;
				hunshousenling();
				mine[1] = mine[0] * 34;
				for (int i = 1; i <= 10; i++) {
					mine[1] += huannian[i];
				}
				if (mine[1] >= 500000) {
					_sleep(1 * 1000);
					cout << "恭喜你,成了一代霸主!" << endl;
					return 0;
				}
				break;
			case 3:
				cout << "----------------------人物-----------------------" << endl;
				renwu();
				break;
			case 4:
				cout << "----------------------游戏结束-----------------------" << endl;
				if (mine[0] < 100) {
					cout << "未达成目标" << endl;
				}
				cout << endl;
				return 0;
				break;
			default:
				cout << "输入错误" << endl;
				break;
		}
	}
	if (live == 0) {
		cout << "您的复活次数已经耗尽"  << endl;
		cout << "您的生命即将转世" << endl;
		cout << "请重新开启游戏" << endl;
	}
	return 0;
}
相关推荐
_DCG_13 分钟前
c++设计模式之策略模式
c++·设计模式·策略模式
自动驾驶小卡32 分钟前
线性回归计算斜率原理及C++实现
c++·算法·回归·线性回归
周振超的40 分钟前
使用Qt+opencv实现游戏辅助点击工具-以阴阳师为例
游戏
DexterYttt1 小时前
P5788 【模板】单调栈
数据结构·c++·算法·蓝桥杯
上元星如雨2 小时前
详解std::placeholders
c++
tamak3 小时前
c/c++蓝桥杯经典编程题100道(19)质因数分解
c语言·数据结构·c++·算法·蓝桥杯
编织幻境的妖3 小时前
python2048游戏
开发语言·python·游戏
小禾苗_4 小时前
C++ ——从C到C++
开发语言·c++
暮雨哀尘4 小时前
蓝桥杯C语言组:动态规划问题
c语言·c++·算法·蓝桥杯·动态规划·线性dp
溟洵4 小时前
【C/C++算法】从浅到深学习---滑动窗口(图文兼备 + 源码详解)
c语言·c++·算法