Java实现——地下城与勇士DNF武器强化(+0——+16)

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

相信很多人都玩过腾讯的 DNF 游戏,有不少都是冲着大马猴玩的,这游戏最好玩的地方我感觉非强化锻造莫属,因为刺激啊,一念天堂,强化深似海。

DNF中强化装备能够为装备增加攻击力,从而增加角色的攻击力。强化的等级越高,增加的攻击越高,但强化装备有着一定的失败

无聊所以就随便写的代码,代码实现的也很简单没有考虑那么多,使用大量的 swtich...case... 实现。

只能通过代码来满足一下的强化欲望了。

1.运行样例

代码运行起来的样例基本就是图片上这样,强化成功会显示目前强化等级,强化失败则会有失败结果。

在这里插入图片描述

2.强化几率

从百度贴吧搞来的 DNF 装备的各个等级的强化成功率:

强化等级 强化成功几率 描述
1-3 100%=1
3-4 95%=0.95 失败则降级
4-5 90%=0.9 失败则降级
5-6 80%=0.8 失败则降级
6-7 75%=0.75 失败则降级
7-8 62.1%=0.621 若失败则变回0
8-9 53.7%=0.537 若失败则变回0
9-10 41.4%=0.414 若失败则变回0
10-11 33.9%=0.339 失败则装备消失
12-13 28%=0.28 失败则装备消失
13-14 17.3%=0.173 失败则装备消失
14-15 13.6%=0.136 失败则装备消失
15-16 10.1%=0.101 失败则装备消失

2.强化方法(实现强化)

实现方法特别简单,就是通过 switch...case... 实现。至于每次强化的几率则是使用 Math.random() 生成的随机数来判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
java复制代码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.源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
java复制代码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;
}
}

千万不要碰强化,希望大家强化不会失败,打造自己的 DNF 豪华装备。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%