Java实现——地下城与勇士DNF武器强化(+0——+16)
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;} elselever -= 3;break;case 11:if (Math.random() <= 0.28) {++lever;} elselever -= 3;break;case 12:if (Math.random() <= 0.207) {++lever;} elselever = 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;} elselever -= 3;break;case 11:if (Math.random() <= 0.28) {++lever;} elselever -= 3;break;case 12:if (Math.random() <= 0.207) {++lever;} elselever = 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;}}