斗罗大陆游戏

// 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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值