简单的选择小程序

沉潇先生 2018-12-22 PM 219℃ 2条

以前同学找我写一个简单的C语言程序。
首先需要选择打野英雄,然后在选择召唤师技能,最后选择天赋。
写完以后,偷偷的改了点东西,就发到网上;来啦。😄😄

//
//                       _oo0oo_
//                      o8888888o
//                      88" . "88
//                      (| -_- |)
//                      0\  =  /0
//                    ___/`---'\___
//                  .' \\|     |// '.
//                 / \\|||  :  |||// \
//                / _||||| -:- |||||- \
//               |   | \\\  -  /// |   |
//               | \_|  ''\---/''  |_/ |
//               \  .-\__  '-'  ___/-. /
//             ___'. .'  /--.--\  `. .'___
//          ."" '<  `.___\_<|>_/___.' >' "".
//         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
//         \  \ `_.   \_ __\ /__ _/   .-` /  /
//     =====`-.____`.___ \_____/___.-`___.-'=====
//                       `=---='
//
//
//     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//               佛祖保佑         永无BUG
//
//
//

#include<stdio.h>
int hero()
{
    int hero1;
    printf("########请输入1-6选择你的打野英雄###########\n");
    printf("1: 盲僧\n2: 剑圣\n3: 梦魇\n4: 男枪\n5: 螳螂\n6: 皇子\n");
    scanf("%d",&hero1);
    switch(hero1)
    {
        case 1:printf("你选择了盲僧\n");break;
        case 2:printf("你选择了剑圣\n");break;
        case 3:printf("你选择了梦魇\n");break;
        case 4:printf("你选择了男枪\n");break;
        case 5:printf("你选择了螳螂\n");break;
        case 6:printf("你选择了皇子\n");break;
        default:printf("请输入1-6的数字!\n");hero();
    }
    return hero1;
}
int skill()
{
    int x, y;
    printf("########请输入1-10选择你的召唤师技能########\n");
    printf("1:幽灵疾步:\n效果:你的英雄在移动时无视单位的碰撞体积,移动速度增加28-45%(于1-18级),持续10秒。\n冷却:180秒\n");
    printf("2:治疗术:\n效果:为你和目标友军英雄回复95-345(取决于英雄等级)生命值,并为你和目标友军英雄提供30%移动速度加成,持续1秒。若目标近期已受到过其它治疗术的影响,则治疗术对目标产生的治疗效果减半。\n冷却:270秒\n");
    printf("3:清晰术:\n效果:为你的英雄回复50%的最大法力值,也会为周围的友军回复25%的最大法力值。\n冷却:144秒\n");
    printf("4:屏障:\n效果:为你的英雄套上护盾,吸收115-455(取决于英雄等级)点伤害,持续2秒。\n冷却:180秒\n");
    printf("5:虚弱:\n效果:虚弱目标敌方英雄,降低目标英雄30%的移动速度和攻击速度,以及10护甲与魔法抗性,并且他们所造成的伤害减少40%,持续2.5秒。\n冷却:210秒\n");
    printf("6:传送:\n效果:在引导4.5秒后,将英雄传送到友方建筑物、小兵或守卫旁边。\n冷却:360秒\n");
    printf("7:净化:\n效果:移除身上的所有限制效果和召唤师技能的减益效果,并且若在接下来的3秒里再次被施加限制效果时,新效果的持续时间会减少65%。\n冷却:210秒\n");
    printf("8:闪现:\n效果:使英雄朝着你的指针所停的区域瞬间传送一小段距离。\n冷却:300秒\n");
    printf("9:引燃:\n效果:引燃是对单体敌方目标施放的持续性伤害技能,在5秒的持续时间里造成80-505(于1-18级)真实伤害,获得目标的视野,并减少目标所受的治疗和回复效果。\n冷却:210秒\n");
    printf("10:惩戒:\n效果:对目标史诗野怪、大型野怪或敌方小兵造成390-1000(取决于英雄等级)点真实伤害。\n冷却:15秒\n");
    scanf("%d %d",&x,&y);
    switch(x)
    {
        case 1:printf("你选择了幽灵疾步");break;
        case 2:printf("你选择了治疗术");break;
        case 3:printf("你选择了清晰术");break;
        case 4:printf("你选择了屏障");break;
        case 5:printf("你选择了虚弱");break;
        case 6:printf("你选择了传送");break;
        case 7:printf("你选择了净化");break;
        case 8:printf("你选择了闪现");break;
        case 9:printf("你选择了引燃");break;
        case 10:printf("你选择了惩戒");break;
        default:printf("请输入1-10的数字!\n");skill();break;
    }
    switch(y)
    {
        case 1:printf("和幽灵疾步\n");break;
        case 2:printf("和治疗术\n");break;
        case 3:printf("和清晰术\n");break;
        case 4:printf("和屏障\n");break;
        case 5:printf("和虚弱\n");break;
        case 6:printf("和传送\n");break;
        case 7:printf("和净化\n");break;
        case 8:printf("和闪现\n");break;
        case 9:printf("和引燃\n");break;
        case 10:printf("和惩戒\n");break;
        default:printf("请输入1-10的数字!\n");skill();
    }
    if(x==10)
        x=0;
    if(y==10)
        y=0;
    return x*10+y;
}
int dower()
{
    int x,y,z,o,count=0;
    printf("#####选择你的天赋####\n");
    printf("1: 精密\n2: 坚决\n3: 巫术\n4: 主宰\n5: 启迪\n");
    printf("请输入1-5选择你的第一个天赋类\n");
    scanf("%d",&x);
    switch(x)
    {
    case 1:
        count=1;
        printf("你选择了精密\n");
        printf("请输入1-4选择精密类天赋:\n1: 强攻\n2: 迅捷步伐\n3: 征服者\n4: 致命节奏\n");
        scanf("%d",&z);
        switch(z)
        {
        case 1:printf("你选择了强攻\n");break;
        case 2:printf("你选择了迅捷步伐\n");break;
        case 3:printf("你选择了征服者\n");break;
        case 4:printf("你选择了致命节奏\n");break;
        default:printf("请输入1-4的数字!\n");dower();break;
        }break;
    case 2:
        count=2;
        printf("你选择了坚决\n");
        printf("请输入1-3选择坚决类天赋:\n1: 不灭之握\n2: 余震\n3: 守护者\n");
        scanf("%d",&z);
        switch(z)
        {
        case 1:printf("你选择了不灭之握\n");break;
        case 2:printf("你选择了余震\n");break;
        case 3:printf("你选择了守护者\n");break;
        default:printf("请输入1-3的数字!\n");dower();break;
        }break;
    case 3:
        count=3;
        printf("你选择了巫术\n");
        printf("请输入1-3选择坚决类天赋:\n1: 艾黎\n2: 奥术彗星\n3: 相位猛冲\n");
        scanf("%d",&z);
        switch(z)
        {
        case 1:printf("你选择了艾黎\n");break;
        case 2:printf("你选择了奥术彗星\n");break;
        case 3:printf("你选择了相位猛冲\n");break;
        default:printf("请输入1-3的数字!\n");dower();break;
        }break;
    case 4:
        count=4;
        printf("你选择了主宰\n");
        printf("请输入1-4选择坚决类天赋:\n1: 电刑\n2: 黑暗收割\n3: 丛刃\n4: 狼头警告\n");
        scanf("%d",&z);
        switch(z)
        {
        case 1:printf("你选择了电刑\n");break;
        case 2:printf("你选择了黑暗收割\n");break;
        case 3:printf("你选择了丛刃\n");break;
        case 4:printf("你选择了狼头警告\n");break;
        default:printf("请输入1-4的数字!\n");dower();break;
        }break;
    case 5:
        count=5;
        printf("你选择了启迪\n");
        printf("请输入1-3选择坚决类天赋:\n1: 冰川增幅\n2: 行窃预兆\n3: 启封的秘籍\n");
        scanf("%d",&z);
        switch(z)
        {
        case 1:printf("你选择了冰川增幅\n");break;
        case 2:printf("你选择了行窃预兆\n");break;
        case 3:printf("你选择了启封的秘籍\n");break;
        default:printf("请输入1-3的数字!\n");dower();break;
        }break;
    default:printf("请输入1-5的数字!\n");dower();
    }
    printf("请输入1-5选择你的第二个天赋类\n");
    scanf("%d",&y);
    switch(y)
    {
    case 1:
            if(count==1)
        {
            printf("你已选择过该天赋类\n请重新选择\n");
            dower();
        }
        else
        {
            printf("你选择了精密\n");
            printf("请输入1-4选择精密类天赋:\n1: 强攻\n2: 迅捷步伐\n3: 征服者\n4: 致命节奏\n");
            scanf("%d",&o);
            switch(o)
            {
            case 1:printf("你选择了强攻\n");break;
            case 2:printf("你选择了迅捷步伐\n");break;
            case 3:printf("你选择了征服者\n");break;
            case 4:printf("你选择了致命节奏\n");break;
            default:printf("请输入1-4的数字!\n");dower();break;
            }
        }
        break;
    case 2:
        if(count==2)
        {
            printf("你已选择过该天赋类\n请重新选择\n");
            dower();
        }
        else
        {
            printf("你选择了坚决\n");
            printf("请输入1-3选择坚决类天赋:\n1: 不灭之握\n2: 余震\n3: 守护者\n");
            scanf("%d",&o);
            switch(o)
            {
            case 1:printf("你选择了不灭之握\n");break;
            case 2:printf("你选择了余震\n");break;
            case 3:printf("你选择了守护者\n");break;
            default:printf("请输入1-3的数字!\n");dower();break;
            }
        }
        break;
    case 3:
            if(count==3)
        {
            printf("你已选择过该天赋类\n请重新选择\n");
            dower();
        }
        else
        {
            printf("你选择了巫术\n");
            printf("请输入1-3选择坚决类天赋:\n1: 艾黎\n2: 奥术彗星\n3: 相位猛冲\n");
            scanf("%d",&o);
            switch(o)
            {
            case 1:printf("你选择了艾黎\n");break;
            case 2:printf("你选择了奥术彗星\n");break;
            case 3:printf("你选择了相位猛冲\n");break;
            default:printf("请输入1-3的数字!\n");dower();break;
            }
        }
        break;
    case 4:
            if(count==2)
        {
            printf("你已选择过该天赋类\n请重新选择\n");
            dower();
        }
        else
        {
            printf("你选择了主宰\n");
            printf("请输入1-4选择坚决类天赋:\n1: 电刑\n2: 黑暗收割\n3: 丛刃\n4: 狼头警告\n");
            scanf("%d",&o);
            switch(o)
            {
            case 1:printf("你选择了电刑\n");break;
            case 2:printf("你选择了黑暗收割\n");break;
            case 3:printf("你选择了丛刃\n");break;
            case 4:printf("你选择了狼头警告\n");break;
            default:printf("请输入1-4的数字!\n");dower();break;
            }
        }
        break;
    case 5:
            if(count==2)
        {
            printf("你已选择过该天赋类\n请重新选择\n");
            dower();
        }
        else
        {
            printf("你选择了启迪\n");
            printf("请输入1-3选择坚决类天赋:\n1: 冰川增幅\n2: 行窃预兆\n3: 启封的秘籍\n");
            scanf("%d",&o);
            switch(o)
            {
            case 1:printf("你选择了冰川增幅\n");break;
            case 2:printf("你选择了行窃预兆\n");break;
            case 3:printf("你选择了启封的秘籍\n");break;
            default:printf("请输入1-3的数字!\n");dower();break;
            }
        }
        break;
    default:printf("请输入1-5的数字!\n");dower();
    }
    return x*1000+y*100+z*10+o;
}
void main()
{
    int x,y,y1,y2,z,z1,z2,z3,z4;
    x=hero();
    y=skill();
    y1=y/10;
    y2=y%10;
    z=dower();
    z1=z/1000;
    z2=z%1000/100;
    z3=z%100/10;
    z4=z%10;
    printf("###############################################\n");
    switch(x)
    {
        case 1:printf("你选择了盲僧  ");break;
        case 2:printf("你选择了剑圣  ");break;
        case 3:printf("你选择了梦魇  ");break;
        case 4:printf("你选择了男枪  ");break;
        case 5:printf("你选择了螳螂  ");break;
        case 6:printf("你选择了皇子  ");break;
    }
    switch(y1)
    {
        case 1:printf("技能为幽灵疾步");break;
        case 2:printf("技能为治疗术");break;
        case 3:printf("技能为清晰术");break;
        case 4:printf("技能为屏障");break;
        case 5:printf("技能为虚弱");break;
        case 6:printf("技能为传送");break;
        case 7:printf("技能为净化");break;
        case 8:printf("技能为闪现");break;
        case 9:printf("技能为引燃");break;
        case 0:printf("技能为惩戒");break;
    }
    switch(y2)
    {
        case 1:printf("和幽灵疾步  ");break;
        case 2:printf("和治疗术  ");break;
        case 3:printf("和清晰术  ");break;
        case 4:printf("和屏障  ");break;
        case 5:printf("和虚弱  ");break;
        case 6:printf("和传送  ");break;
        case 7:printf("和净化  ");break;
        case 8:printf("和闪现  ");break;
        case 9:printf("和引燃  ");break;
        case 0:printf("和惩戒  ");break;
    }
        switch(z1)
    {
    case 1:
        printf("并选择了精密类的  ");
        switch(z3)
        {
        case 1:printf("强攻  ");break;
        case 2:printf("迅捷步伐天赋  ");break;
        case 3:printf("征服者天赋  ");break;
        case 4:printf("致命节奏天赋  ");break;
        }break;
    case 2:
        printf("并选择了坚决类的  ");
        switch(z3)
        {
        case 1:printf("不灭之握  ");break;
        case 2:printf("余震天赋  ");break;
        case 3:printf("守护者天赋  ");break;
        }break;
    case 3:
        printf("并选择了巫术类的  ");
        switch(z3)
        {
        case 1:printf("艾黎天赋  ");break;
        case 2:printf("奥术彗星天赋  ");break;
        case 3:printf("相位猛冲天赋  ");break;
        }break;
    case 4:
        printf("并选择了主宰类的  ");
        switch(z3)
        {
        case 1:printf("电刑天赋  ");break;
        case 2:printf("黑暗收割天赋  ");break;
        case 3:printf("丛刃天赋  ");break;
        case 4:printf("狼头警告天赋  ");break;
        }break;
    case 5:
        printf("并选择了启迪类的  ");
        switch(z3)
        {
        case 1:printf("冰川增幅天赋  ");break;
        case 2:printf("行窃预兆天赋  ");break;
        case 3:printf("启封的秘籍天赋  ");break;
        }break;
    }
    switch(z2)
    {
    case 1:
            printf("和精密类的  ");
            switch(z4)
            {
            case 1:printf("强攻天赋\n");break;
            case 2:printf("迅捷步伐天赋\n");break;
            case 3:printf("征服者天赋\n");break;
            case 4:printf("致命节奏天赋\n");break;
            }
        break;
    case 2:
            printf("和坚决类的  ");
            switch(z4)
            {
            case 1:printf("不灭之握天赋\n");break;
            case 2:printf("余震天赋\n");break;
            case 3:printf("守护者天赋\n");break;;
            }
        break;
    case 3:
            printf("和巫术类的  ");
            switch(z4)
            {
            case 1:printf("艾黎天赋\n");break;
            case 2:printf("奥术彗星天赋\n");break;
            case 3:printf("相位猛冲天赋\n");break;
            }
        break;
    case 4:
            printf("和主宰类的  ");
            switch(z4)
            {
            case 1:printf("电刑天赋\n");break;
            case 2:printf("黑暗收割天赋\n");break;
            case 3:printf("丛刃天赋\n");break;
            case 4:printf("狼头警告天赋\n");break;
            }
        break;
    case 5:

            printf("和启迪类的  ");
            switch(z4)
            {
            case 1:printf("冰川增幅天赋\n");break;
            case 2:printf("行窃预兆天赋\n");break;
            case 3:printf("启封的秘籍天赋\n");break;
            }
        break;
    }
    printf("敌军还有30s到达战场 碾碎他们!\n");
}

简单小程序.png

他应该不会说我的。

标签: 联盟, C语言

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 2 条评论


  1. 梁兴健
    梁兴健

    将对游戏的热爱同步到代码当中,可以的

    回复 2018-12-23 20:02
    1. 猫抓草
      猫抓草 博主

      face-with-tears-of-joy_1f602.png 我已经半年没玩过游戏了,天天各种事情。这些东西还都是他整理好给我,我只负责写代码。

      回复 2018-12-24 09:25