根据网路上找的概率图(未验证真实性),放入代码中测试,代码和图片如下:
/** * 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 终极测试 让我看看旭旭宝宝到底多强!
妈耶!增幅王牛批
-------------------------------------------------------
不能代表游戏数据
就当娱乐看吧