Android特定的订单流游戏算法?

时间:2014-01-23 09:50:53

标签: android algorithm libgdx

这是我第一次开发Android游戏。我想创建一个流游戏,其中特定节点必须仅以特定顺序连接。例如计算机将连接到调制解调器,然后调制解调器将连接到路由器(其基于网络的游戏)。到目前为止,我遇到的算法并不涉及特定的订单自由流。(请参阅thisthis。)是否存在现有的算法? 附:我正在使用libGDX。 enter image description here

游戏将与此类似。

2 个答案:

答案 0 :(得分:1)

您需要实现一个简单的有限状态机。

有关实施细节,您可以查看How to implement a FSM - Finite State Machine in Java

这必须集成到任何算法(由您推荐)中以检查有效性。

希望这会有所帮助。祝你好运。

答案 1 :(得分:1)

您将无法找到仅针对此特定问题创建的算法。您正在寻找的是搜索算法,例如BFS并修改它以在此游戏中使用。

在BFS中,您从一个单元开始并将有效的邻居单元添加到队列中并遍历此队列,直到到达目的地或队列为空(您没有到达目的地)。

对于这个游戏,首先你必须定义哪些邻居是有效的。有7种类型的细胞

empty cells : never valid
destination : always valid, end algorithm here
source: never valid, you don't want to move source square back
vertical tunnel: only valid if previous cell is also a vertical tunnel or one of modem, router, source
horizontal tunnel: only valid if previous cell is also a horizontal tunnel or one of modem, router, source

调制解调器和路由器单元将会有点棘手,在迭代队列时,您还需要推送当前路径的类型。当前路径最初将是“源”,如果您通过调制解调器,它将是“调制解调器”,如果您通过路由器,它将是“路由器”。考虑到这一点,路由器和调制解调器的规则是

modem: only valid if current path is source or modem
router: only valid if current path is modem or router