【问题标题】:Reducing if-statements in a Pokemon element type system [closed]减少口袋妖怪元素类型系统中的 if 语句 [关闭]
【发布时间】:2014-05-10 19:32:58
【问题描述】:

我正在尝试用 C++ 创建一个简单的口袋妖怪战斗模拟器。我现在遇到的问题是如何实现元素系统(水胜火,火胜草,草胜水,包括所有其他元素类型)。

我不知道如何在不使用大量 If 语句的情况下创建这样的系统。有没有更好的方法来做到这一点?

我有大量的通用编程知识,并且我了解 C++ 的基础知识,例如类、循环和各种其他基本知识。

我会提供代码,但没有什么可提供的,因为我不知道如何制作这样的系统。我想我在问我可以使用什么样的技术、数据结构等来完成这个

【问题讨论】:

  • 我们不是来为您工作的。我们帮助您解决在自己工作时遇到的问题。因此,请发布您迄今为止尝试过的内容,然后我们一定可以为您提供帮助!
  • 我会使用查找表决策矩阵
  • 决策矩阵看起来可行。感谢您的输入
  • 您需要显示一些代码来缩小您的要求;我们不知道您是否了解 C++,或者您是否在完全抽象地提出这个问题。

标签: c++ if-statement


【解决方案1】:

考虑一个查找表决策矩阵

想象一下这张桌子,用于剪刀石头布

   R  P  S
R  -  L  W
P  W  -  L
S  L  W  -

如果是这样解释的,读取 ROW 然后读取 COL

ROW(R) at COL(R) -> R *ties* R
ROW(S) at COL(P) -> S *wins* P

(在这种情况下,矩阵的对角线的两半是倒置的镜子。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多