DNF装备强化的算法分析与实现
DNF装备强化的算法分析与实现
需求
根据输入的当前等级和目标等级,得到强化到目标等级所需的强化次数(或装备爆掉),强化规则如下:
- DNF装备强化在+1~+3 不会失败;
- +4~+7,失败后物品原有强化等级降低1级;
- +8~+10,失败后掉3级;
- 10上11或以上就爆了。
- 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%
算法分析
装备的等级可以用switch实现,成功概率可以用随机数实现,每次强化后判断是否达到目标等级,如未达到,则再次强化,直至强化到目标等级或装备爆掉。因为需多次用到强化和等级判断,所以可以将强化和等级判断分别封装成两个方法,多次互相调用来实现需求。
代码实现
import java.util.Scanner;public class Dnf {//计数器int count = 0;/*** 判断是否达到目标等级,若未达到则继续强化* @param nowLevel* @param targetLevel*/public void intensify01(int nowLevel,int targetLevel){if (nowLevel < targetLevel) {intensify(nowLevel,targetLevel);}else {System.out.println("强化所用次数:" + count);return;}}/*** 强化装备* @param nowLevel* @param targetLevel*/public void intensify(int nowLevel,int targetLevel) {switch (nowLevel) {case 0:case 1:case 2:System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;intensify01(nowLevel,targetLevel);break;case 3:int n3 = (int) (Math.random() * 1000);if (n3 < 950) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("强化失败,当前等级:" + nowLevel);count++;}intensify01(nowLevel,targetLevel);break;case 4:int n4 = (int) (Math.random() * 1000);if (n4 < 900) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 1;System.out.println("强化失败,当前等级:" + nowLevel);count++;}intensify01(nowLevel,targetLevel);break;case 5:int n5 = (int) (Math.random() * 1000);if (n5 < 800) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 1;System.out.println("强化失败,当前等级:" + nowLevel); count++;}intensify01(nowLevel,targetLevel);break;case 6:int n6 = (int) (Math.random() * 1000);if (n6 < 750) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 1;System.out.println("强化失败,当前等级:" + nowLevel);count++;}intensify01(nowLevel,targetLevel);break;case 7:int n7 = (int) (Math.random() * 1000);if (n7 < 621) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 1;System.out.println("强化失败,当前等级:" + nowLevel);count++;}intensify01(nowLevel,targetLevel);break;case 8:int n8 = (int) (Math.random() * 1000);if (n8 < 537) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 3;System.out.println("强化失败,当前等级:" + nowLevel); count++;}intensify01(nowLevel,targetLevel);break;case 9:int n9 = (int) (Math.random() * 1000);if (n9 < 414) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {nowLevel -= 3;System.out.println("强化失败,当前等级:" + nowLevel);count++;}intensify01(nowLevel,targetLevel);break;case 10:int n10 = (int) (Math.random() * 1000);if (n10 < 339) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;case 11:int n11 = (int) (Math.random() * 1000);if (n11 < 280) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;case 12:int n12 = (int) (Math.random() * 1000);if (n12 < 207) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;case 13:int n13 = (int) (Math.random() * 1000);if (n13 < 173) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;case 14:int n14 = (int) (Math.random() * 1000);if (n14 < 136) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;case 15:int n15 = (int) (Math.random() * 1000);if (n15 < 101) {System.out.println("恭喜你强化成功,当前等级:" + ++nowLevel);count++;} else {System.out.println("很遗憾,强化失败,装备损坏!");count++;System.out.println("强化所用次数:" + count);return;}intensify01(nowLevel,targetLevel);break;}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("输入当前等级:");int nowLevel = sc.nextInt();System.out.print("输入目标等级:");int targetLevel = sc.nextInt();Dnf id = new Dnf();if (nowLevel >= 0 && nowLevel <= 16 && targetLevel >= 0 && targetLevel <= 16) {id.intensify01(nowLevel,targetLevel);} else {System.out.println("输入的等级无效!");}}
DNF装备强化的算法分析与实现相关推荐
- 模拟DNF装备强化机制
模拟DNF装备强化机制 你好! 这是本人在CSDN平台第一次发布文章,模拟dnf里面的装备强化机制,各位大佬请做出指点. 装备强化成功的概率 DNF装备强化1-3级,成功率100% DNF装备强化3- ...
- 自制DNF装备强化小程序
自己开发了个强化小程序,强化1到5是100%成功,强化6概率是70%,强化8概率是100%,往后每级强化概率都有变化.强化等级大于8时强化失败,等级降到5,小于8时,强化失败等级不变, 特殊提示:VI ...
- dnf强化卷代码_这行代码告诉你!为什么你地下城与勇士(DNF)的装备强化老是失败?...
tip1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+10,失败后掉3级: 10上11或以上就爆了. tip2: DNF装备强化1-3级,成功率10 ...
- 模拟地下城与勇士(DNF)的装备强化
模拟地下城与勇士(DNF)的装备强化 tip1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+10,失败后掉3级: 10上11或以上就爆了. tip2 ...
- 模拟地下城与勇士(DNF)的装备强化过程
标题模拟的要求 做一个DNF装备强化的简单项目,强化装备的成功率会随着装备等级的增加而降低. 提示1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+1 ...
- 模拟地下城与勇士(DNF)的装备强化实现过程
这里写自定义目录标题 模拟地下城与勇士(DNF)的装备强化实现过程: 模拟地下城与勇士(DNF)的装备强化实现过程: 题目: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级 ...
- Java基础实现模拟地下城与勇士(DNF)的装备强化过程
大家好,我是kai_Childe,作为一名java刚入门的小白,本期就以java基础来模拟地下城与勇士(DNF)的装备强化过程,并以此来记录我的学习过程. 文章目录 强化未成功惩罚机制 各等级强化成 ...
- java经典习题-模拟地下城与勇士(DNF)的装备强化
java模拟地下城与勇士(DNF)的装备强化 tip1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+10,失败后掉3级: 10上11或以上就爆了. ...
- 【Java】模拟地下城与勇士(DNF)的装备强化过程
提示1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+10,失败后掉3级: 10上11或以上就爆了. 提示2: DNF装备强化1-3级,成功率100% ...
- 地下城与勇士(DNF)
模拟地下城与勇士(DNF)的装备强化过程: 提示1: DNF装备强化在+1-+3 不会失败: +4-+7,失败后物品原有强化等级降低1级: +8-+10,失败后掉3级: 10上11或以上失败就爆了. ...
最新文章
- 精通Spring Boot —— 第十五篇:使用@ControllerAdvice处理异常
- PAT 1069 1070 1071 1072
- jquery 轮播插件 bxslider
- tensorflow 进阶(三),BP神经网络之两层hidden_layer
- html万年历闹钟怎么取消,万年历如何取消整点报时,他上面有四个键,分...
- 对象导论---JAVA编程思想
- bartlett 算法 matlab,GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)
- opencv抠人像_卸载PS吧!这个小程序就能一键AI抠图,超简单!
- 上下两个x轴_工业机器人到底有多少个“轴”?
- test dword ptr [eax],eax ; probe page.
- 如何用一行 CSS 实现 10 种现代布局?
- 用什么的SQL语句来查的一个表中有相同的记录条数
- ARM裸机开发(三)SDRAM编程
- matlab简单函数画图例题,Matlab(十) 简单的函数画图
- rabbitmq启动报错,TCP connection succeeded but Erlang distribution failed
- 有没有安卓4.0的java模拟器_手机java模拟器apk下载
- [imx6 VPU]硬解码+示例[ffmpeg获取海康rtsp h264流 QT显示]
- 计算机组成原理学习-实验一 运算器实验(详细、系统)
- 我们对Google的排名算法到底了解多少?
- (三)模仿学习-Action数据的模仿
热门文章
- 如何一键生成gif动画?如何将录屏转成gif动画?推荐一款绿色开源小软件ScreenToGif
- 数据结构-直接选择排序
- java 一元线性回归_Java实现一元线性回归
- 发现美,欣赏美,美之我见
- Python优化算法01——差分进化算法
- 宝塔搭建javaweb_宝塔面板配置及部署javaweb教程(全网最全)
- 软件测试用例.范文,软件测试用例模板范文.doc
- 苏亚星显示没有登录的服务器,苏亚星机房管理系统
- 国密SM2算法陷入安全危机? 假!SM2仍然安全
- 【考研数学】函数图像(三角函数、幂函数、指数函数等)