简单的选择小程序

技术 · 2018-12-22 · 61 人浏览

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

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

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

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

简单小程序.png

他应该不会说我的。

联盟 C语言
  1. 梁兴健 2018-12-23

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

    1. 猫抓草 (作者)  2018-12-24
      @梁兴健

      :1: 我已经半年没玩过游戏了,天天各种事情。这些东西还都是他整理好给我,我只负责写代码。

Theme Jasmine by Kent Liao