这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战
DNF中强化装备能够为装备增加攻击力,从而增加角色的攻击力。强化的等级越高,增加的攻击越高,但强化装备有着一定的失败
1.运行样例
- 强化规则
0~3不会失败
4-7失败不会掉等级 8-10失败掉一级 10→11失败掉7 11→12失败掉8 12以后失败炸
-
强化几率(来自百度)
1-3 —— 1 3-4 ——0.95 4-5 ——0.9 5-6 —— 0.8 6-7 ——0.75 7-8 ——0.621 8-9 ——0.537 9-10 —— 0.414 10-11 ——0.339 11-12 ——0.207 12-13 ——0.28 13-14 —— 0.173 14-15 —— 0.136 15-16 —— 0.101
2.强化方法(实现强化)
public static int qianghua(int lever) {
switch (lever) {
case 0:
case 1:
case 2:
lever++;
break;
case 3:
if (Math.random() <= 0.95) {
++lever;
}
break;
case 4:
if (Math.random() <= 0.90) {
++lever;
}
break;
case 5:
if (Math.random() <= 0.8) {
++lever;
}
break;
case 6:
if (Math.random() <= 0.75) {
++lever;
}
break;
case 7:
if (Math.random() <= 0.621) {
++lever;
}
break;
case 8:
if (Math.random() <= 0.537)
++lever;
else
--lever;
break;
case 9:
if (Math.random() <= 0.414)
++lever;
else
--lever;
break;
case 10:
if (Math.random() <= 0.339) {
++lever;
} else
lever -= 3;
break;
case 11:
if (Math.random() <= 0.28) {
++lever;
} else
lever -= 3;
break;
case 12:
if (Math.random() <= 0.207) {
++lever;
} else
lever = 0;
break;
case 13:
if (Math.random() <= 0.173) {
++lever;
} else lever = 0;
break;
case 14:
if (Math.random() <= 0.136) {
++lever;
} else lever = 0;
break;
case 15:
if (Math.random() <= 0.101) {
++lever;
} else lever = 0;
break;
}
return lever;
}
复制代码
3.源码
import java.util.Scanner;
/*
地下城强化
*/
public class Test {
public static void main(String[] args) {
int lever;
boolean flag = false;
Scanner scan = new Scanner(System.in);
System.out.println("------------------------");
System.out.println("--------强------化-------");
System.out.println("------------------------");
while (true) {
System.out.println("武器自身强化等级:");
lever = scan.nextInt();
if (lever == 16) {
System.out.println("武器强化到顶" + "+16");
} else if (lever > 16 || lever < 0) {
System.out.println("输入不合法,请重新输入");
} else {
flag = true;
break;
}
}
if (flag) {
System.out.println("要强化武器吗?Y/N");
if ("Y".equals(scan.next())) {
while (flag) {
System.out.println("------开始强化------");
if(flag==false){
System.out.println("武器已破碎,请放入武器");
}
int n =lever;
lever = qianghua(lever);
if (lever == 0) {
flag = false;
System.out.println("强化失败,武器破碎");
} else if(n>=lever){
System.out.println("强化失败:+" + lever);
}else if(n<lever){
System.out.println("强化成功:+"+lever);
}
if(flag){
System.out.println("要继续强化吗?y/n");
if ("n".equals(scan.next())){
System.out.println("退出强化");
break;
}
}else {
System.out.println("武器已破碎");
break;
}
}
}
}
}
public static int qianghua(int lever) {
switch (lever) {
case 0:
case 1:
case 2:
lever++;
break;
case 3:
if (Math.random() <= 0.95) {
++lever;
}
break;
case 4:
if (Math.random() <= 0.90) {
++lever;
}
break;
case 5:
if (Math.random() <= 0.8) {
++lever;
}
break;
case 6:
if (Math.random() <= 0.75) {
++lever;
}
break;
case 7:
if (Math.random() <= 0.621) {
++lever;
}
break;
case 8:
if (Math.random() <= 0.537)
++lever;
else
--lever;
break;
case 9:
if (Math.random() <= 0.414)
++lever;
else
--lever;
break;
case 10:
if (Math.random() <= 0.339) {
++lever;
} else
lever -= 3;
break;
case 11:
if (Math.random() <= 0.28) {
++lever;
} else
lever -= 3;
break;
case 12:
if (Math.random() <= 0.207) {
++lever;
} else
lever = 0;
break;
case 13:
if (Math.random() <= 0.173) {
++lever;
} else lever = 0;
break;
case 14:
if (Math.random() <= 0.136) {
++lever;
} else lever = 0;
break;
case 15:
if (Math.random() <= 0.101) {
++lever;
} else lever = 0;
break;
}
return lever;
}
}
复制代码