【发布时间】:2017-07-01 08:35:11
【问题描述】:
我正在构建一个命令行战斗模拟器。我有两个团队:redteam 和 blueteam。
它们有 4 个特点:
health
attack
defense
rep
我认为前三个是不言自明的。 rep 是声誉或恐惧因素。用户将为两个团队输入功能。代表最高的团队将首先开始攻击。 damage = attack - defense。这再次从health 中减去。然后另一个团队攻击,这个过程一直持续到团队的health <=0 或attack <= defense,因为在这种情况下不会造成任何损害。
在这种形式下,游戏非常简单,只有生命值发生变化,其他没有。
我的问题是我目前正在使用数组和一个 while 循环,其中所有逻辑都放在一堆嵌套的 if-else 块中。代码真的很乱。有解决这类问题的算法(和数据结构)吗?
一个
【问题讨论】:
-
“特定类型的问题”是什么意思?您已经为您的特定案例创建了一个算法。
-
具体是指回合制游戏。
-
我认为每个回合制游戏与其他游戏相比都有其独特之处。适用于其中大多数的算法可能是:
while(true) { for(p : players) { p.take_turn(); if(p.won()) return; } } -
有很多!阅读有关 AI、专家系统、最小/最大树、声明性库、AI 库等的更多信息。
-
恕我直言,最好将一些库用于此类游戏。