游戏中的数学之魔塔数学

时间:2024-04-03 08:02:59

前言:这几天心血来潮找找以前玩过的老游戏,就随手下载了一个PK32。今天早上又看到光良50岁的热搜,一方面感叹时光飞逝,一方面也感觉到作者刘景雄在代码方面的强悍。游戏中的数学之魔塔数学
足足五页的游戏却只有7.3M的软件大小,还有几乎完备的美术。故此写了这篇文章。

一、基础数据

这种游戏想必大家多少也有些了解。所谓的计算,就是我先攻击,我的伤害=我的ATK-敌人DEF,然后敌人生命值下降这些。然后敌人攻击我。敌人伤害=敌人ATK-我的DEF,然后我的生命值下降这些。直到一方的生命值下降为0为止。

首先我们先将一些数据来数学化。

设我的攻击为MATK,防御为MDEF。敌人的攻击为EATK,防御为EDEF,生命值为EHP。最终受到的伤害为DMG。

这样的话伤害公式为DMG=(EATK-MDEF)*EHP/(MATK-EDEF)。这里面敌人的属性都是定值。所以DMG、MATK、MDEF这三个变量与这些定值构成了一个三元函数。

因为在pk32的21层魔塔里并没有越升越贵或者同价格攻防数量不等等说法,所以不必考虑这些条件。

二、开始计算

我们的目标是计算什么条件下提升攻击收益高,提升防御收益高。当然在21层魔塔中不必考虑过多。因为本身游戏难度不高,所以可以在多数条件下防杀敌人(防御力大于等于敌人攻击力。而攻击力只要能破防即可)。

我们假设每次提升为k。
那么当提升攻击时,DMG1=(EATK-MDEF)*EHP/(MATK+k-EDEF)
提升防御时,DMG2=(EATK-MDEF+k)*EHP/(MATK-EDEF)

为了确定哪一项更好,我们可以两式相减。DMG1-DMG2=(EATK-MDEF)*EHP/(MATK+k-EDEF)-(EATK-MDEF+k)*EHP/(MATK-EDEF)

这时只要判断这个式子>0时的条件和<0时的条件就可以判断哪一项收益更高了。

这里的计算我就不展示了。直接写结论

当EATK+EDEF>MATK+MDEF+k的时候,加攻击收益更高
当EATK+EDEF<MATK+MDEF+k的时候,加防御收益更高
当然前提是你的攻击必须>敌人的防御力。不然破防都不行。
也就是你的点数和小于对方点数和,加攻击力收益更高。反之则防御收益高。

还有一种情况就是比如敌人1000点血 100攻 0防 我100攻打他需要10回合。同样我105的攻击力,打他也需要10回合。那么这个时候就是所谓提升攻击无用的阶段。不过事实上,虽然在数学上这个计算很有意义,但是在游戏中几乎是无意义的。因为这种情况几乎不会出现。而出现了通常也不差这些数据。

结语:之前在用RM的时候还自己编辑过一个魔塔。后来发现自己对数据的计算确实不太擅长。自己玩自己设计的游戏都会卡关。也玩过什么100层200层的或者各种各样的魔塔。反而最后细品还是24(21)层和50层魔塔最为经典好玩。也着实佩服设计这些魔塔人的智慧。虽然这个游戏类型逐渐的被时代埋藏,但是无论什么时候把他挖出来,再玩一遍,依然是趣味十足。