游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10052|回复: 13

[分享] 减法公式的一个改良方案

[复制链接]

8360

主题

9283

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29945
发表于 2015-11-24 14:49:53 | 显示全部楼层 |阅读模式
  文/BeerRabbit

  对一般化的攻防公式,实际上都可以用如下的形式进行表达:伤害=f(攻击,防御)

  而一个理想的减法公式所需要满足的条件:

  (1)f(攻击,防御)>0,即没有不破防的情况;

  (2)当攻击>防御时:

1.jpg

  即此时,攻击-防御是伤害值的主要成分。

  如果把防御作为一个参数(用d表示),而攻击作为自变量(用x表示),伤害值为因变量(用y表示)。那么:

  y=f(x;d)

  进一步,根据d的绝对大小进行单位标准化处理(缩放线性变换),得到:

  y=f(x)=f(x;1)

  对函数f(x)应满足的条件进行严格的描述如下:

  (1)f(x)在定义域[0,+∞)上单调增加,且f(0)=0;

  (2)f(x)以直线y=x-1为渐近线;

  (3)f(x)尽可能靠近直线y=0和直线y=x-1;

  其图形应该如下图的蓝色曲线所示:

2.png

  考虑两条边界函数组成的分段函数g(x):

3.jpg


  
k
  

f(1)file:///C:\Users\Administrator\AppData\Roaming\Tencent\QQ\Temp\4D137CC3C5124BCAA4C5522B420A82E1.giffile:///C:\Users\Administrator\AppData\Roaming\Tencent\QQ\Temp\4D137CC3C5124BCAA4C5522B420A82E1.gif


1


0.212752


2


0.135300


3


0.096694


4


0.074259


5


0.059913


6


0.050082


7


0.042976


8


0.037620


9


0.033445


10


0.030102


11


0.027366


12


0.025086


13


0.023156


14


0.021502


15


0.020069


16


0.018814


17


0.017708


18


0.016724


19


0.015844


20


0.015051



  因此,利用如下这个函数:

4.jpg

  就可以对减法公式进行改良,结果为:

5.jpg

  只需增加k值,便可以达到任意的近似程度。图示举例。

  (1)、防御=500,k=2:

6.png

  (2)、防御=500,k=4:

7.png

  (3)、防御=500,k=8:

9.png

  (4)、防御=500,k=16:

10.png

0

主题

21

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2015-11-24 15:16:21 | 显示全部楼层
那么,结论是啥?减法公式,修正为了混合公式?=。=。。


然而,这并没有什么卵用。。。ln函数,e指数,实现起来也费尽。。。

0

主题

250

帖子

1948

积分

金牌会员

Rank: 6Rank: 6

积分
1948
发表于 2015-11-24 17:16:25 | 显示全部楼层
完全看不懂..

1

主题

45

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2015-11-24 18:17:52 | 显示全部楼层
伤害公式里面居然加上了高数…… 服务器表示压力山大

0

主题

114

帖子

753

积分

高级会员

Rank: 4

积分
753
发表于 2015-11-25 09:24:21 | 显示全部楼层
不出意外应该会被程序打死=。=

0

主题

52

帖子

286

积分

中级会员

Rank: 3Rank: 3

积分
286
发表于 2015-11-25 09:57:39 | 显示全部楼层
作者知不知道有个法则叫 奥卡姆剃刀

点评

貌似微博上也有一个呢  发表于 2015-11-25 09:59

57

主题

578

帖子

2294

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2294
发表于 2015-11-25 10:10:38 | 显示全部楼层
你确定好控制?

0

主题

41

帖子

611

积分

高级会员

Rank: 4

积分
611
发表于 2015-11-25 13:48:57 | 显示全部楼层
不出意外应该会被程序打死=。=

5

主题

101

帖子

1723

积分

金牌会员

Rank: 6Rank: 6

积分
1723
发表于 2015-11-25 14:17:01 | 显示全部楼层
LZ做这个的时候只不过是本着一个玩乐的心情去弄的,压根没想什么实现复杂度之类,如果非要考虑后者,倒是可以用下面比较这种的方法:
折中.jpg

3

主题

20

帖子

187

积分

注册会员

Rank: 2

积分
187
发表于 2015-11-26 11:54:47 | 显示全部楼层
Mikuholic 发表于 2015-11-25 09:57
作者知不知道有个法则叫 奥卡姆剃刀

简单截断当然实用。不过楼主这是理论研究,也值得赞个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-25 12:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表