我制作了一款与Popcap的Atomica几乎完全相同的游戏。 (http://www.popcap.com/gamepopup.php?theGame=atomica)
除了一个重要的功能外,它几乎完成了;阻止用户在任何地方移动球体。比如,如果在用户试图移动的球体之间存在其他球体的墙壁,并且它试图将其移动到的球体,则用户应该无法移动它。
我已将所有字段和球体存储在多维数组[x-loc,y-loc]中,其中“e”等于空,“s”球等等。我试过运行循环来查找它如果两个领域之间有一条清晰的道路,但没有任何效果。
任何人都可以给我一些如何解决这个问题的提示吗?
答案 0 :(得分:0)
您需要运行类似Floyd-Warshall的路径算法...省略矩阵中的无效注释和边缘(即您查看的图形将是没有球体的所有节点的子图形),这样您就可以创建只有合法行动的图表。然后,像Floyd-Warshall这样的路径算法将为您提供所有“合法”移动。