gpt4 book ai didi

java - 比较球员的优势和劣势

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:03 24 4
gpt4 key购买 nike

我正在开发一款游戏,该游戏将具有与口袋妖怪相同的系统,即每个玩家都有一个“类型”(火、水、草等)。当玩家战斗时,我需要确定将攻击乘以什么因素,以创造优势和劣势。到目前为止,我在每个“类型”类中使用一个开关,该开关将另一个“类型”类作为输入并返回乘法因子。只有这些“类型”类中的三个,我写了很多颂歌,我可以预见当我想添加更多时它会在未来失控。

所以我的问题是,如何实现 DRY 解决方案来确定每种类型的优势和劣势?我附上了一张宠物小 Sprite 类型表,作为我正在尝试做的事情的引用。 enter image description here

最佳答案

如何枚举类型,并构建一个看起来就像您发布的二维矩阵。每当您需要战斗的“因素”时,使用攻击者和防御者作为二维数组中的索引来查找因素。查找会很快,代码会非常干净。

示例用例如下所示:

factor = factorTable[FIRE][WATER]; // would set factor to 0.5
factor = factorTable[WATER][FIRE]; // would set factor to 2.0

正如 Noctua 所建议的,将实际数据放在配置文件中可能是个好主意。这样您就可以轻松更改它而无需重新编译。如果选择该选项,则需要某种解析函数来在程序开头创建矩阵。

下一步要采取的更好的步骤是将表行为和类型表示封装在类中。底层实现可能仍然相同(或更改,这就是重点),但您不会直接公开表或枚举。

factor = StrengthFactors(Player1.Type(), Player2.Type()); // or similar

关于java - 比较球员的优势和劣势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com