减少Pokemon元素类型系统中的if语句

时间:2014-05-10 19:32:58

标签: c++ if-statement

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

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

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

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

1 个答案:

答案 0 :(得分:0)

考虑查找表决策矩阵

想象一下这张表,适用于Rock-Paper-Scissors

   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

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