• 控制台打怪升级游戏。。。


    转载自:https://blog.csdn.net/ojzha/article/details/75182329

    #include<stdlib.h>
    #include<stdio.h>
    #include<iostream>
    #include<time.h>       //suiji      
    #include <afx.h>
    #include<cstring>
    #include<windows.h>          //SLEEP函数
    struct Player //玩家结构体,并初始化player
    {
        char name[21];
        int attack;
        int defense;
        int health;
        long int max_health;
        int level;
        int exp;
        int range_exp;
        long int max_exp;
    }player = { "勇者",50,40,100,100,1,0,0,100 };
    struct Enemy  //怪的结构体,并初始化各种怪
    {
        char name[20];
        char wupin[12];
        int attack;
        int defense;
        int health;
        int money;
        long int exp;
        int wupin_sign;
        int wupinpro;
        int double_attack;
        int miss;
    }strongman = { "森林巨人","黄金圣衣",40,50,350,200,100,1,2,1,0 },
    witch = { "森林女巫","银甲",25,15,100,50,50,2,2,1,1 },
    xiyi = { "森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2 },
    big_strongman = { "森林巨人王","巨人之臂",40 * 5,50 * 5,350 * 5,200 * 5,100 * 5,4,4,2,0 },
    lion = { "草原雄狮","绝世好剑",60,30,280,200,100,5,2,1,0 },
    horse = { "草原野马","碧血剑",28,12,90,50,50,6,2,1,1 },
    bee = { "草原黄蜂","长剑",17,11,60,30,35,7,3,2,2 },
    shitu = { "使徒","",60 * 8,30 * 8,280 * 8,200 * 8,100 * 8,9,1,1,0 },
    guai = { "","",0,0,0,0,0,0,0,0,0 };
    struct Place
    {
        int bar, hotel, forest1, forest2, forest3, grass1, grass2, grass3;
    }place = { 1,2,3,4,5,6,7,8 };
    int max_exp = 0;
    int choose_number = 0, s = 0, strongman_arm = 0, battle = 0, money = 500, place_sign = 9;
    int cao = 3, jijiubao = 2, baiyao = 2, superbaiyao = 1, boom = 3, dubiao = 2, atom_boom = 1;
    int fang = 0, fang1 = 10, fang1n = 0, fang2 = 20, fang2n = 0, fang3 = 40, fang3n = 0, fang4 = 100, fang4n = 0;
    int gong = 0, gong1 = 8, gong1n = 0, gong2 = 15, gong2n = 0, gong3 = 25, gong3n = 0, gong4 = 60, gong4n = 0;
    char gongname[20] = "", fangname[20] = "";
    char proof;
    void AddWupin(int);
    int AttackResult();
    void BattleAct();
    void ChooseWupin();
    void DisplayState();
    void OrdinaryAct();
    int SuiJi();
    int SuiJi100();
    void WhetherLevelUp();
    void SlowDisplay(CString p);
    int main()
    {
        using namespace std;
        int i = 0, j = 0, k = 0;
        char player_name[21];
        SlowDisplay("这是一个勇者的世界!  gdfzoj的逸宁公主被陌生人绑架了!
    
     伟大的勇者啊~拿起你们的武器,营救逸宁公主!
    
    
    输入你的名字:   (20个字符)
    
    
    ");
        //    sndPlaySound("res\F005.wav",SND_LOOP);
        cin >> player_name;
        system("cls");
        //SlowDisplay("你叫fzj
    
    
    ");
        system("pause");
        system("cls");
        strncpy_s(player.name, player_name, 20);
        if (strcmp(player.name, "fzj") == 0) {
            SlowDisplay("封号多年的 fzj 啊!你终于可以重见天日了!
    
    
     fzj 重新启动...      随即...     暴走!!!
    
    
    attack=999
    defence=999
    health=9999
    healthmax=9999");
            player.attack = 500;
            player.defense = 400;
            player.health = 1000;
            player.max_health = 1000;
        }
        getchar();
        OrdinaryAct();
        return 0;
    }
    int SuiJi()
    {
        srand((unsigned)time(NULL));
        return rand() % 10;
    }
    int SuiJi100()
    {
        srand((unsigned)time(NULL));
        return rand() % 100;
    }
    void ChooseWupin()                         //选择物品 并使用
    {
        printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 0,返回
    
    
    ", cao, jijiubao, baiyao, superbaiyao, boom, dubiao, atom_boom);
        switch (scanf_s("%d", &choose_number), choose_number)
        {
        case 1:
            if (cao > 0)
            {
                SlowDisplay("使用止血草,HP增加60
    
    
    ");
                cao--;
                if (player.health + 60 > player.max_health)player.health = player.max_health;
                else player.health += 60;
            }
            else SlowDisplay("没有止血草了
    
    
    ");
            break;
        case 2:
            if (jijiubao > 0)
            {
                SlowDisplay("使用急救包,HP增加80
    
    
    ");
                jijiubao--;
                if (player.health + 80 > player.max_health)player.health = player.max_health;
                else player.health += 80;
            }
            else SlowDisplay("没有急救包了
    
    
    ");
            break;
        case 3:
            if (baiyao > 0)
            {
                SlowDisplay("使用云南白药,HP增加120
    
    
    ");
                baiyao--;
                if (player.health + 120 > player.max_health)player.health = player.max_health;
                else player.health += 120;
            }
            else SlowDisplay("没有云南白药了
    
    
    ");
            break;
        case 4:
            if (superbaiyao > 0)
            {
                SlowDisplay("使用超级云南白药,HP增加200
    
    
    ");
                superbaiyao--;
                if (player.health + 200 > player.max_health)player.health = player.max_health;
                else player.health += 200;
            }
            else SlowDisplay("没有超级云南白药了
    
    
    ");
            break;
        case 5:
            if (battle)                   //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
            {
                if (boom > 0)
                {
                    SlowDisplay("使用手雷,敌人HP减少100
    
    
    ");
                    boom--;
                    guai.health -= 100;
                    AttackResult();
                }
            }
            else SlowDisplay("非战斗状态,不能使用手雷!
    
    
    ");
            break;
        case 6:
            if (battle)                   //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
            {
                if (dubiao > 0)
                {
                    SlowDisplay("使用毒标,敌人HP减少200
    
    
    ");
                    dubiao--;
                    guai.health -= 200;
                    AttackResult();
                }
            }
            else SlowDisplay("非战斗状态,不能使用毒标!
    
    
    ");
            break;
        case 7:
            if (battle)                   //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
            {
                if (atom_boom > 0)
                {
                    SlowDisplay("使用手抛式原子弹,敌人HP减少500
    
    
    ");
                    atom_boom--;
                    guai.health -= 500;
                    AttackResult();
                }
            }
            else SlowDisplay("非战斗状态,不能使用手抛式原子弹!
    
    
    ");
            break;
        case 0:break;
        default:printf("ChooseWupin error!
    
    
    ");
        }
    }
    int AttackResult()                      //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    {
        if (guai.health <= 0)
        {
            battle = 0;
            printf("战斗胜利!获得金币%d,经验%d
    
    
    ", guai.money, guai.exp);
            player.exp += guai.exp;
            player.range_exp += guai.exp;
            money += guai.money;
            s = SuiJi();
            if (s < guai.wupinpro)
            {
                SlowDisplay("从敌人尸骸中发现");
                printf("%s
    
    
    ", guai.wupin);
                AddWupin(guai.wupin_sign);
            }
            WhetherLevelUp();
            if (strcmp(guai.name, "使徒") == 0)
            {
                puts("战斗胜利,救出逸宁公主!!!");
                getchar();
                getchar();
                exit(0);
            }
            return 1;                 //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
        }
        else 
        {
             int s = SuiJi();
             if ((guai.attack + s - player.defense / 3) < 0)
             {
                 player.health -= 1;
                 printf("%s反击,你的HP减少了 1
    
    ",guai.name);
             }
             else
             {
                 player.health -= guai.attack + s - player.defense / 3;
                 printf("%s反击,你的HP减少了%d
    
    ",guai.name,guai.attack + s - player.defense / 3);
             }
             if (player.health < 0)
             {
                 battle = 0;
                 printf("%s战死!金币掉落%d
    
    
    ",player.name,player.level * 500);
                 money -= player.level * 500;
                 player.health = player.max_health / 5;
                 OrdinaryAct();//////////
                 return 1;
             }
        }
        return 0;
    }
    void AddWupin(int wupin_sign)
    {
        switch (wupin_sign)
        {
        case 1:fang4n++;        break;
        case 2:fang3n++;        break;
        case 3:fang2n++;        break;
        case 4:strongman_arm = 1; break;
        case 5:gong4n++;        break;
        case 6:gong3n++;        break;
        case 7:gong2n++;        break;
        default:printf("AddWupin error
    
    
    ");
        }
    }
    void WhetherLevelUp()
    {
        int i = 0, j = 0;
        int l1 = player.range_exp / 100;
        int l2 = player.range_exp / 300;
        int l3 = player.range_exp / 600;
        if (player.level <= 15 && l1 > 0)                     //15级以下,经验足够 都满足则升级
        {
            if (l1 == 1)
            {
                printf("%s", player.name);
                SlowDisplay("   升级!
    
    
    攻击力+3, 防御力+2, HP上限+20
    
    
    ");
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3;
                player.defense += 2;
                player.max_health += 20;
                player.health = player.max_health;
                player.level++;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 100;
            }
            else
            {
                printf("好厉害!连升%d级!", l1);
                printf("攻击力+%d, 防御力+%d, HP上限+%d
    
    
    ", 3 * l1, 2 * l1, 20 * l1);
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3 * l1;
                player.defense += 2 * l1;
                player.max_health += 20 * l1;
                player.health = player.max_health;
                player.level += l1;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 100 * l1;
            }
        }
        else if (player.level <= 40 && l2 > 0)
        {
            if (l2 == 1)
            {
                printf("%s", player.name);
                SlowDisplay("   升级!
    
    
    攻击力+3, 防御力+2, HP上限+20
    
    
    ");
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3;
                player.defense += 2;
                player.max_health += 20;
                player.health = player.max_health;
                player.level++;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 300;
            }
            else
            {
                printf("好厉害!连升%d级!", l1);
                printf("攻击力+%d, 防御力+%d, HP上限+%d
    
    
    ", 3 * l2, 2 * l2, 20 * l2);
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3 * l2;
                player.defense += 2 * l2;
                player.max_health += 20 * l2;
                player.health = player.max_health;
                player.level += l2;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 300 * l2;
            }
        }
        else if (l3 > 0)
        {
            if (l3 == 1)
            {
                printf("%s", player.name);
                SlowDisplay("   升级!
    
    
    攻击力+3, 防御力+2, HP上限+20
    
    
    ");
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3;
                player.defense += 2;
                player.max_health += 20;
                player.health = player.max_health;
                player.level++;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 600;
            }
            else
            {
                printf("好厉害!连升%d级!", l1);
                printf("攻击力+%d, 防御力+%d, HP上限+%d
    
    
    ", 3 * l3, 2 * l3, 20 * l3);
                player.exp = player.exp + guai.exp - (player.exp + guai.exp) % 100;
                player.attack += 3 * l3;
                player.defense += 2 * l3;
                player.max_health += 20 * l3;
                player.health = player.max_health;
                player.level += l3;
                player.range_exp = 0;
                player.exp = player.max_exp;
                player.max_exp += 600 * l3;
            }
        }
    }
    void OrdinaryAct()                    //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    {
    
        while (1)
        {
            //            (1000);
            //            system("cls");
            puts("=============================================================================");
            printf("要做什么?
    
    
       1,移动  2,道具  3,对话  4,查看状态  5,装备  0,退出游戏
    
    
    ");
            puts("=============================================================================");
            switch (scanf_s("%d", &choose_number), choose_number)
            {
            case 1:                                    //显示移动菜单
                SlowDisplay("要去哪里?
    
    
    ");
                printf("1,酒吧 2,旅馆 3,森林一层 4,森林二层 5,森林三层 6,草原一层 7,草原二层 8,草原三层
    
    
    ");
                switch (scanf_s("%d", &choose_number), choose_number)
                {
                case 1:place_sign = place.bar;                        //记录目前位置-酒吧
            //           OrdinaryAct();
                    break;
                case 2:place_sign = place.hotel;                      //进入旅店
                    SlowDisplay("要住店吗? 200个金币 1,是  0,否
    
    
    ");
                    choose_number = 1;
                    switch (scanf_s("%d", &choose_number), choose_number)
                    {
                    case 1:if (money - 200 < 0)                       //判断钱是否够
                    {
                        SlowDisplay("Sorry,你的钱不够~
    
    
    ");
                    }
                           else 
                           {
                                SlowDisplay("好好休息
    	HP满
    		第二天了
    
    ");
                                money -= 200;                         //花费200住店费
                                player.health = player.max_health;    //体力满
                           }
                           break;
                    case 0:SlowDisplay("下次再来!
    
    
    "); break;
                    default:printf("hotel talk error!
    
    
    ");
                    }
                    place_sign = 0;
                    break;
                case 3:
                    place_sign = place.forest1;
                    s = SuiJi();
                    if (s < 7)
                    {
                        battle = 1;
                        guai = xiyi;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else if (s < 9)
                    {
                        battle = 1;
                        guai = witch;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else
                    {
                        SlowDisplay("这里安全
    
    
    ");
                        //不用调用OAct函数,会自动执行OAct函数;
                    }
                    break;
                case 4:
                    place_sign = place.forest2;
                    s = SuiJi();
                    if (s < 7)
                    {
                        battle = 1;
                        guai = witch;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else if (s < 9)
                    {
                        battle = 1;
                        guai = strongman;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else
                    {
                        SlowDisplay("这里安全
    
    
    ");
                    }
                    break;
                case 5:
                    place_sign = place.forest3;
                    s = SuiJi();
    
                    battle = 1;
                    guai = big_strongman;
                    printf("%s扑了过来!
    
    
    ", guai.name);
                    BattleAct();
    
                    break;
                case 6:
                    place_sign = place.grass1;
                    s = SuiJi();
                    if (s < 7)
                    {
                        battle = 1;
                        guai = bee;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else if (s < 9)
                    {
                        battle = 1;
                        guai = horse;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else
                    {
                        SlowDisplay("这里安全
    
    
    ");
                    }
                    break;
                case 7:
                    place_sign = place.grass2;
                    s = SuiJi();
                    if (s < 7)
                    {
                        battle = 1;
                        guai = horse;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else if (s < 9)
                    {
                        battle = 1;
                        guai = lion;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else
                    {
                        SlowDisplay("这里安全
    
    
    ");
                    }
                    break;
                case 8:
                    place_sign = place.grass3;
                    s = SuiJi();
                    if (s < 7)
                    {
                        battle = 1;
                        guai = lion;
                        printf("%s扑了过来!
    
    
    ", guai.name);
                        BattleAct();
                    }
                    else if (s < 9)
                    {
                        battle = 1;
                        if (strongman_arm)
                        {
                            SlowDisplay("神秘老人:
    
    
        哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人之臂我要了,逸宁公主你也别想带走!
    
    
    ");
                            guai = shitu;
                            printf("%s扑了过来!
    
    
    ", guai.name);
                            BattleAct();
                        }
                        else SlowDisplay("神秘老人:
    
    
        年轻人,你好啊.如果你有巨人之臂,我可以告诉你逸宁的下落哦~
    
    
    ");
                    }
                    else
                    {
                        SlowDisplay("这里安全
    
    
    ");
                    }
                    break;
                default:printf("choose map error!
    
    
    ");
                }
                break;
            case 2:   ChooseWupin(); break;              //显示道具,并可以使用.
            case 3:                                               //对话选项
                if (place_sign == place.bar)
                {
                    SlowDisplay("要和谁说话?
    
    
    1,红发女郎 2,赏金猎人 3,酒吧老板
    
    
    ");     //显示对话人物
                    switch (scanf_s("%d", &choose_number), choose_number)
                    {
                    case 1:
                        SlowDisplay("红发女郎:
    
    
        我们一起xxx吧!(~脸红~)
    
    
    听说你经常外出打猎,外面的路你应该很熟悉的!
    
    
    ");
                        break;
                    case 2:
                        if (fang1n < 1 && gong1n < 1)
                        {
                            SlowDisplay("赏金猎人:
    
    
        你要救逸宁啊!好胆量!
    
    
        不过外面的丛林和草原很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
    
    
    ");
                            printf("%s心想:(哇,这位大叔人真好啊!
    
    
    )", player.name);
                            gong1n++;
                            fang1n++;
                        }
                        else SlowDisplay("赏金猎人:
    
    
        加油吧,年轻人!
    
    
        不要被外面丛林和草原所吓倒!
    
    
    ");
                        break;
                    case 3:
                        printf("要喝点什么?(逸宁水)
    
    
        1,二锅头25金币 HP+20  2,XO酒80金币 HP+50  3,人头马面150金币 HP+100  0,返回
    
    
    ");
                        choose_number = 1;
                        while (choose_number)
                        {
                            switch (scanf_s("%d", &choose_number), choose_number)
                            {
                            case 1:if (money < 25)
                            {
                                SlowDisplay("钱不够!");
                            }
                                   else
                            {
                                if (player.health + 20 <= player.max_health)
                                {
                                    SlowDisplay("HP+20.");
                                    money -= 25;
                                    player.health += 20;
                                }
                                else
                                {
                                    SlowDisplay("HP满了");
                                    player.health = player.max_health;
                                }
                            }
                                   break;
                            case 2:if (money < 80)
                            {
                                SlowDisplay("钱不够!");
                            }
                                   else
                            {
                                if (player.health + 50 <= player.max_health)
                                {
                                    SlowDisplay("HP+50.");
                                    money -= 80;
                                    player.health += 50;
                                }
                                else
                                {
                                    SlowDisplay("HP满了");
                                    player.health = player.max_health;
                                }
                            }
                                   break;
                            case 3:if (money < 150)
                            {
                                SlowDisplay("钱不够!");
                            }
                                   else
                            {
                                if (player.health + 100 <= player.max_health)
                                {
                                    SlowDisplay("HP+100.");
                                    money -= 150;
                                    player.health += 100;
                                }
                                else
                                {
                                    SlowDisplay("HP满了");
                                    player.health = player.max_health;
                                }
                            }
                                   break;
                            case 0:SlowDisplay("下次在来!
    "); break;
                            default:SlowDisplay("输入错误
    
    
    ");
                            }
                        }
                    }
                }
                else if (place_sign == place.hotel)
                    SlowDisplay("“老板娘!我...”
    
    
    “我忙着呢,没空理你~”
    
    
    ");
                else SlowDisplay("这里好像没人可以聊天
    
    
    ");
                break;
            case 4:   DisplayState(); break;             //显示状态
            case 5:                                 //装备
                printf("攻装: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个
    
    
    ", gong1n, gong2n, gong3n, gong4n);
                printf("防装: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个   8,黄金圣衣:%d个		0,返回
    
    
    ", fang1n, fang2n, fang3n, fang4n);
                SlowDisplay("选择要装备的武器或防具:
    
    
    ");
                switch (scanf_s("%d", &choose_number), choose_number)
                {
                case 1:if (gong1n >= 1)
                {
                    SlowDisplay("拿起了匕首
    
    
    ");
                    gong = gong1;
                    strcpy_s(gongname, "匕首");
                }
                       else SlowDisplay("你没有匕首可以装备
    
    
    ");
                    break;
                case 2:if (gong2n >= 1)
                {
                    SlowDisplay("拿起了长剑
    
    
    ");
                    gong = gong2;
                    strcpy_s(gongname, "长剑");
                }
                       else SlowDisplay("你没有长剑可以装备
    
    
    ");
                    break;
                case 3:if (gong3n >= 1)
                {
                    SlowDisplay("拿起了碧血剑
    
    
    ");
                    gong = gong3;
                    strcpy_s(gongname, "碧血剑");
                }
                       else SlowDisplay("你没有碧血剑可以装备
    
    
    ");
                    break;
                case 4:if (gong4n >= 1)
                {
                    SlowDisplay("拿起了绝世好剑
    
    
    ");
                    gong = gong4;
                    strcpy_s(gongname, "绝世好剑");
                }
                       else SlowDisplay("你没有绝世好剑可以装备
    
    
    ");
                    break;
                case 5:if (fang1n >= 1)
                {
                    SlowDisplay("穿上了布衣
    
    
    ");
                    fang = fang1;
                    strcpy_s(fangname, "布衣");
                }
                       else SlowDisplay("你没有布衣可以装备
    
    
    ");
                    break;
                case 6:if (fang2 >= 1)
                {
                    SlowDisplay("穿上了铁甲
    
    
    ");
                    fang = fang2;
                    strcpy_s(fangname, "铁甲");
                }
                       else SlowDisplay("你没有铁甲可以装备
    
    
    ");
                    break;
                case 7:if (fang3n >= 1)
                {
                    SlowDisplay("穿上了银甲
    
    
    ");
                    fang = fang3;
                    strcpy_s(fangname, "银甲");
                }
                       else SlowDisplay("你没有银甲可以装备
    
    
    ");
                    break;
                case 8:if (fang4n >= 1)
                {
                    SlowDisplay("穿上了黄金圣衣
    
    
    ");
                    fang = fang4;
                    strcpy_s(fangname, "黄金圣衣");
                }
                       else SlowDisplay("你没有黄金圣衣可以装备
    
    
    ");
                    break;
                case 0:SlowDisplay("未更换装备
    
    
    "); break;
                default:printf("change error!");
                }
                break;
            case 0:
                SlowDisplay("确定退出游戏?(Y/N)
    
    
    ");
                getchar();
                proof = getchar();
                if (proof == 'y' || proof == 'Y')
                {
                    SlowDisplay("数据存储中...");
                    //向文件中更新数据;
                    getchar();
                    SlowDisplay("按回车退出");
                    getchar();
                    return;
                }
                else if (proof == 'n' || proof == 'N')printf("继续游戏!
    
    
    ");
                else SlowDisplay("继续!
    
    
    ");
                break;
            default:SlowDisplay("输入错误!
    
    
    ");
            }
        }
    }
    void DisplayState()
    {
        printf("%s 攻击力:%d+%d=%d  防御力:%d+%d=%d  HP:%d/%d 
    
    
    ", player.name, player.attack, gong, player.attack + gong, player.defense, fang, player.defense + fang, player.health, player.max_health);
        printf("武器: %s 防具: %s 
    
    
    ", gongname, fangname);
        printf("等级:%d  经验:%d/%d 还需要%d经验升级 金币:%d 
    
    
    ", player.level, player.exp, player.max_exp, player.max_exp - player.exp, money);
    }
    void BattleAct()
    {
        while (1)
        {
            puts("=============================================================================");
            printf("要怎么办?
    
    
        1,攻击 2,物品 3,查看状态 4,逃跑
    
    
    ");
            switch (scanf_s("%d", &choose_number), choose_number)
            {
            case 1:
                s = SuiJi();
                printf("%s攻击! %sHP减少%d
    
    
    ", player.name, guai.name, player.attack + s + gong - guai.defense / 3);
                guai.health -= player.attack + s + gong - guai.defense / 3;
                if (AttackResult())return;    //如果攻击有结果(敌人或玩家战死)退出函数
                else continue;
            case 2: ChooseWupin(); break;    //选择物品,可以使用,战斗中允许使用攻击性物品
            case 3:DisplayState(); break;     //显示状态
            case 4:
                s = SuiJi();
                if (s < 4)    //40%的概率可以逃跑
                {
                    printf("%s逃跑了~
    
    
    ", player.name);
                    battle = 0;
                    return;
                }
                else printf("%s逃跑失败!
    
    
    ", player.name);
                break;
            default:SlowDisplay("输入错误,重新输入!
    
    
    ");
            }
        }
    }
    void SlowDisplay(CString p)
    {
        std::cout << p;
    }
  • 相关阅读:
    在Eclipse中设置中文JavaDOC
    买车,给点建议和意见
    父亲节
    JSP文件上传

    昨天我生日
    换皮了
    西安夕阳
    WinForms中只能输入数字的文本框
    使用GoogleCode SVN服务
  • 原文地址:https://www.cnblogs.com/feicaixian/p/12129365.html
Copyright © 2020-2023  润新知