【DNF --- 增幅代码】

根据网路上找的概率图(未验证真实性),放入代码中测试,代码和图片如下:

/**
     * main方法启动
     * @param args
     */
    public static void main(String[] args) {
        DNF(20);
    }

    /**
     * DNF
     * 马哥增幅器
     * 增幅到指定级别
     * @param level 增幅等级
     */
    public  static void DNF(int level) {
      //  1   2   3   4  5  6  7  8  9  10 11  12  13  ......12之后都是20%概率
      // 100 100 100 100 80 70 60 70 60 50 40  30  20  ......
      //                 -1 -1 -1 0  0   0 zb  zb  zb  ......5-7掉级 8、9、10清零 10+炸裂
      //增幅等级
      int a = 0;
      //摧毁装备数
      int zb= 0;
      //增幅次数
      int i = 0;
      //--------------------------------------------------------------------
      for(i=0;a!=level;i++){
          switch (a){
              case 0:  a++;break;
              case 1:  a++;break;
              case 2:  a++;break;
              case 3:  a++;break;
              case 4:  if(Math.random()<=0.8){a++;}else{a--;}break;
              case 5:  if(Math.random()<=0.7){a++;}else{a--;}break;
              case 6:  if(Math.random()<=0.6){a++;}else{a--;}break;
              case 7:  if(Math.random()<=0.7){a++;}else{a=0;}break;
              case 8:  if(Math.random()<=0.6){a++;}else{a=0;}break;
              case 9:  if(Math.random()<=0.5){a++;}else{a=0;}break;
              case 10: if(Math.random()<=0.4){a++;}else{a=0;zb++;}break;
              case 11: if(Math.random()<=0.3){a++;}else{a=0;zb++;}break;
              case 12: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 13: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 14: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 15: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 16: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 17: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 18: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              case 19: if(Math.random()<=0.2){a++;}else{a=0;zb++;}break;
              default: System.out.println(i+"---"+a+"---"+zb);
          }
      }
      System.out.println("马哥增幅+"+a+"太极天帝剑");
      System.out.println("马哥一共增幅了"+i+"次");
      System.out.println("马哥炸了"+zb+"把太极天帝剑");
      System.err.println("祝兄弟们神话毕业!");
  }

  测试用例:+8 +9 +10 +20

  测试结果:

+8

第三次测试起飞,直上8!

+9

 

 难道我真的是欧皇?

+10

 看起来+10还是很简单的,就是不知道为什么马哥总是失败

+20 终极测试  让我看看旭旭宝宝到底多强!

 妈耶!增幅王牛批

 -------------------------------------------------------

不能代表游戏数据

就当娱乐看吧

  

原文地址:https://www.cnblogs.com/xiaoluohao/p/13476904.html