模拟DNF装备强化机制
你好! 这是本人在CSDN平台第一次发布文章,模拟dnf里面的装备强化机制,各位大佬请做出指点。
装备强化成功的概率
DNF装备强化1~3级,成功率100%
DNF装备强化3~4级,成功率95%
DNF装备强化4~5级,成功率90%
DNF装备强化5~6级,成功率80%
DNF装备强化6~7级,成功率75%
DNF装备强化7~8级,成功率62.1%
DNF装备强化8~9级,成功率53.7%
DNF装备强化9~10级,成功率41.4%
DNF装备强化10~11级,成功率33.9%
DNF装备强化11~12级,成功率28%
DNF装备强化12~13级,成功率20.7%
DNF装备强化13~14级,成功率17.3%
DNF装备强化14~15级,成功率13.6%
DNF装备强化15~16级,成功率10.1%
装备强化失败惩罚机制
装备强化在+1~+3 不会失败;
+4~+7,失败后物品原有强化等级降低1级;
+8~+10,失败后掉3级;
10上11或以上就爆了
功能实现原理
定义一个变量level为当前装备等级,定义一个布尔变量b为装备是否强化成功,定义一个随机数变量d为装备强化成功概率。装备强化成功则等级level加1,装备强化失败则等级可能不变或者等级level减1或减3,当等级过高时,强化失败的话则装备可能爆掉。
import java.util.Scanner;
/**
* DNF装备强化1~3级,成功率100%
DNF装备强化3~4级,成功率95%
DNF装备强化4~5级,成功率90%
DNF装备强化5~6级,成功率80%
DNF装备强化6~7级,成功率75%
DNF装备强化7~8级,成功率62.1%
DNF装备强化8~9级,成功率53.7%
DNF装备强化9~10级,成功率41.4%
DNF装备强化10~11级,成功率33.9%
DNF装备强化11~12级,成功率28%
DNF装备强化12~13级,成功率20.7%
DNF装备强化13~14级,成功率17.3%
DNF装备强化14~15级,成功率13.6%
DNF装备强化15~16级,成功率10.1%
装备强化在+1~+3 不会失败;
+4~+7,失败后物品原有强化等级降低1级;
+8~+10,失败后掉3级;
10上11或以上就爆了
* @author 16377
*
*/
public class DnfLevel {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入当前装备的强化等级:");
int level = sc.nextInt();
//装备强化成功概率
double d = Math.random();
//装备强化成功或者失败
boolean b = false;
switch(level) {
case 0:
case 1:
case 2:
b = true;
break;
case 3:
if(d < 0.95) {
b = true;
level++;
}else {
b = false;
}
break;
case 4:
if(d < 0.9) {
b = true;
}else {
b = false;
}
break;
case 5:
if(d < 0.8) {
b = true;
}else {
b = false;
}
break;
case 6:
if(d < 0.75) {
b = true;
}else {
b = false;
}
break;
case 7:
if(d < 0.621) {
b = true;
}else {
b = false;
}
break;
case 8:
if(d < 0.537) {
b = true;
}else {
b = false;
}
break;
case 9:
if(d < 0.414) {
b = true;
}else {
b = false;
}
break;
case 10:
if(d < 0.339) {
b = true;
}else {
b = false;
}
break;
case 11:
if(d < 0.28) {
b = true;
}else {
b = false;
}
break;
case 12:
if(d < 0.207) {
b = true;
}else {
b = false;
}
break;
case 13:
if(d < 0.173) {
b = true;
}else {
b = false;
}
break;
case 14:
if(d < 0.136) {
b = true;
}else {
b = false;
}
break;
case 15:
if(d < 0.10) {
b = true;
}else {
b = false;
}
break;
default:
System.out.println("等级输入错误!");
break;
}
if (b == true) {
level += 1;
System.out.println("装备强化成功,当前等级为" + level);
}else {
if(level >= 0 && level <= 3) {
System.out.println("装备强化失败,当前等级为:" + level);
}else if(level > 4 && level < 7) {
level -= 1;
System.out.println("装备强化失败,当前等级降为" + level);
}else if(level >= 7 && level < 10) {
level -= 3;
System.out.println("装备强化失败,当前等级降为" + level);
}else if(level >= 10 && level <= 15) {
level = 0;
System.out.println("您的装备爆了,当前等级降为" + level);
}
}
}
}