火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

game

作者: 作者的头像   zhou , 时间:2026-06-28 10:47:39 , 所有人可见, 阅读  95

#include<iostream>
#include<time.h> 
#include <Windows.h>
using namespace std;
struct Monster{
    string name;
    string jineng;
    int level;
    int blood;
    int jineng_shanghai;
    int jingyan;
}; 
struct Pet{
    string name[3];
    string jineng[3];
    int level;
    int blood;
    int jineng_shanghai[3];
    int level_jingyan;
}; 

string pet[3]={"小火龙","水蓝蓝","喵喵"};
int main(){
    bool game_over=1;
    srand(time(nullptr));
    Pet mypet[3]={
                    {{"小火龙","火炎龙","火龙神"},{"喷火","火球","烈火球"},1,200,{20,50,100},0},
                    {{"水蓝蓝","水精灵","海之女"},{"喷水","水枪","水炎柱"},1,200,{20,50,100},0},
                    {{"喵喵","魔力喵","精灵王"},{"草鞭","叶龙卷","魔藤"},1,200,{20,50,100},0}
                }; 
    Monster monster[8]={
                        {"史莱姆","冲撞",1,100,10,30},
                        {"哥布林","斩击",2,200,25,35},
                        {"野兽人","重拳",3,300,50,40},
                        {"冰原狼","冰刺",4,400,60,45},
                        {"恶灵","毒雾",5,500,60,50},
                        {"无头骑士","穿刺",6,600,70,55},
                        {"冰凤凰","冰雨",7,700,70,60},
                        {"火麒麟","烈炎",8,800,80,65}
                        };
    char moshi='0';
    int mypet_number;
    char choose_pet;

    while(1){       
        if(game_over==1){
            cout<<"请选择您的宠物:A:小火龙   B:水蓝蓝   C:喵喵"<<endl;
            cin>>choose_pet;
            if(choose_pet=='A'){
                mypet_number=0;
                mypet[0]={{"小火龙","火炎龙","火龙神"},{"喷火","火球","烈火球"},1,200,{20,50,100},0};
                cout<<"恭喜你!成功获得小精灵\"小火龙\"!当前等级:1级"<<endl;
            }
            else if(choose_pet=='B'){
                mypet_number=1;
                mypet[1]={{"水蓝蓝","水精灵","海之女"},{"喷水","水枪","水炎柱"},1,200,{20,50,100},0};
                cout<<"恭喜你!成功获得小精灵\"水蓝蓝\"! 当前等级:1级"<<endl;
            }
            else if(choose_pet=='C'){
                mypet_number=2;
                mypet[2]={{"喵喵","魔力喵","精灵王"},{"草鞭","叶龙卷","魔藤"},1,200,{20,50,100},0};
                cout<<"恭喜你!成功获得小精灵\"喵喵\"!当前等级:1级"<<endl;
            } 
            game_over=0;
        }
        cout<<"1.冒险模式  2.精灵之家  3.和小精灵玩游戏  4.退出游戏"<<endl;
        cin>>moshi;

        if(moshi=='1'){
            cout<<"进入冒险模式,准备好刷怪请输入\"go\",退回菜单请输入\"no\""<<endl;
            string maoxian;
            cin>>maoxian;
            if(maoxian=="go"){

                cout<<"正在寻找怪物···"<<endl;
                double start, stop, durationTime;
                start = clock();            
                Sleep(1 * 1000);    //程序延时1s
                stop = clock();
                int monster_number=rand()%8;
                cout<<"出现怪物:"<<monster[monster_number].name<<"  等级:"<<monster[monster_number].level<<"  血量:"<<monster[monster_number].blood<<endl;

                int t_monster_blood=monster[monster_number].blood;
                char fight_or_again_or_exit;    
                while(1){
                    cout<<"输入f开始战斗! 输入r重新寻找! 输入e退出冒险模式!"<<endl;
                    cin>>fight_or_again_or_exit;
                    if(fight_or_again_or_exit=='f'){

                        while(mypet[mypet_number].blood>0&&monster[monster_number].blood>0){
                            int Use_jineng_or_run; 
                            cout<<"你的回合:1.选择要使用的技能(0,1,2)  2.逃跑请输入-1"<<endl; 
                            cin>>Use_jineng_or_run;
                            if(Use_jineng_or_run==0){
                                cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
                                int mingzhong=rand()%100;
                                if(mingzhong>40){
                                    cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
                                    monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
                                    cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;

                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    }
                                }
                                else{
                                    cout<<"对方闪避!技能未命中!"<<endl;
                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    } 
                                }
                            }
                            else if(Use_jineng_or_run==1&&mypet[mypet_number].level>=4){
                                cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
                                int mingzhong=rand()%100;
                                if(mingzhong>40){
                                    cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
                                    monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
                                    cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;
                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    }
                                }
                                else{
                                    cout<<"对方闪避!技能未命中!"<<endl; 
                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    }
                                }
                            }
                            else if(Use_jineng_or_run==2&&mypet[mypet_number].level>=8){
                                cout<<"使用技能:"<<mypet[mypet_number].jineng[Use_jineng_or_run]<<endl;
                                int mingzhong=rand()%100;
                                if(mingzhong>40){
                                    cout<<"技能命中!造成"<<mypet[mypet_number].jineng_shanghai[Use_jineng_or_run]<<"伤害!"<<endl;
                                    monster[monster_number].blood-=mypet[mypet_number].jineng_shanghai[Use_jineng_or_run];
                                    cout<<monster[monster_number].name<<"还剩"<<monster[monster_number].blood<<"滴血"<<endl;
                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    }
                                }
                                else{
                                    cout<<"对方闪避!技能未命中!"<<endl; 
                                    if(monster[monster_number].blood>0){
                                        cout<<"对方回合! 对方使用技能:"<<monster[monster_number].jineng<<endl;
                                        int mingzhong=rand()%100;
                                        if(mingzhong>60){
                                            cout<<"技能命中!造成"<<monster[monster_number].jineng_shanghai<<"伤害!"<<endl;
                                            mypet[mypet_number].blood-=monster[monster_number].jineng_shanghai;
                                            cout<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"还剩"<<mypet[mypet_number].blood<<"滴血"<<endl;
                                        }
                                        else{
                                            cout<<"成功闪避!对方技能未命中!"<<endl; 
                                        }
                                    }
                                }
                            }
                            else if(Use_jineng_or_run==-1){
                                cout<<"逃跑成功!";
                                break;
                            }
                            else{
                                cout<<"技能未学会或无此技能!请重新选择!" <<endl;
                            }
                        }

                        if(mypet[mypet_number].blood<=0) {
                            cout<<"冒险失败!请重新开始游戏!"<<endl;
                            game_over=1;
                        }
                        else if(monster[monster_number].blood<=0){
                            cout<<"成功击败怪物,获得经验"<< monster[monster_number].jingyan<<"点"<<endl;
                            mypet[mypet_number].level_jingyan+=monster[monster_number].jingyan;
                            if(mypet[mypet_number].level_jingyan>=100){
                                mypet[mypet_number].level++;
                                mypet[mypet_number].level_jingyan=mypet[mypet_number].level_jingyan%100;
                                cout<<"小精灵升级!!!当前等级"<< mypet[mypet_number].level<<"级"<<endl; 
                            }
                        }
                        monster[monster_number].blood=t_monster_blood;
                        break;
                    }
                    else if(fight_or_again_or_exit=='r'){
                        cout<<"正在寻找怪物···"<<endl;
                        double start, stop, durationTime;
                        start = clock();            
                        Sleep(1 * 1000);    //程序延时1s
                        stop = clock();
                        monster_number=rand()%8;
                        cout<<"出现怪物:"<<monster[monster_number].name<<"  等级:"<<monster[monster_number].level<<"  血量:"<<monster[monster_number].blood<<endl;

                        t_monster_blood=monster[monster_number].blood;

                    }
                    else if(fight_or_again_or_exit=='e'){
                        break;
                    }
                }
            }
        }
        else if(moshi=='2'){    
            while(1){
                int ming_ling_2;    
                cout<<"当前小精灵名字:"<<mypet[mypet_number].name[mypet[mypet_number].level>=4?(mypet[mypet_number].level>=8?2:1):0]<<"  小精灵等级:"<<mypet[mypet_number].level
                <<"  小精灵血量:"<<mypet[mypet_number].blood<<"   小精灵当前经验值:"<<mypet[mypet_number].level_jingyan<<endl;
                cout<<"输入1:进行疗伤    输入2:回到主页"<<endl;
                cin>> ming_ling_2;  
                if(ming_ling_2==1){
                    cout<<"开始疗伤···"<<endl;
                    double start, stop, durationTime;
                    start = clock();
                    if(mypet[mypet_number].level==1){
                        Sleep(500);    //程序延时1s
                        mypet[mypet_number].blood=200;
                    }
                    else{
                        Sleep((mypet[mypet_number].level*100-mypet[mypet_number].blood)/100 * 500);    //程序延时1s
                        mypet[mypet_number].blood=mypet[mypet_number].level*100;
                    }
                    stop = clock();
                    cout<<"等级:"<<mypet[mypet_number].level<<endl;
                    cout<<"小精灵已恢复为满状态!当前血量:"<<mypet[mypet_number].blood<<endl;
                }
                else if(ming_ling_2==2){
                    break;
                }
            }
            continue;
        }
        else if(moshi=='3'){
            int mingling_3;     
            while(1){
                cout<<"输入1:开始游戏  输入2:回到主页"<<endl;
                cin>>mingling_3;
                if(mingling_3==1){
                    int t,guess;
                    t=rand()%100+1;
                    cout<<"开始猜数字吧!范围在0-100!"<<endl; 
                    while(cin>>guess){
                        if(guess==t){
                            cout<<"猜对了!!!"<<endl;
                            break;
                        }
                        else if(guess>t){
                            cout<<"太大了,重新猜"<<endl;
                        }
                        else if(guess<t){
                            cout<<"太小了,重新猜"<<endl; 
                        }
                    }
                }
                else if(mingling_3==2){
                    break;
                }
            }
        }
        else if(moshi=='4'){
            break;
        }

    }
    return 0;
} 

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码