C# 阻止用户移动任何位置

C# 阻止用户移动任何位置,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,我做了一个和Popcap的Atomica几乎一样的游戏 它几乎完成了,除了一个重要的功能;阻止用户将球体移动到任何位置。比如,如果在用户试图移动的球体和它试图移动到的字段之间有一堵由其他球体组成的墙,那么用户应该无法移动它 我将所有的字段和球体存储在一个多维数组中[x-loc,y-loc],其中e等于空,s sphere,等等。我尝试在其中运行一个循环,以确定两个字段之间是否有一条清晰的道路,但没有任何效果 有人能告诉我如何解决这个问题吗?你需要运行一个路径算法,比如。。。从矩阵中省略无效的注释

我做了一个和Popcap的Atomica几乎一样的游戏

它几乎完成了,除了一个重要的功能;阻止用户将球体移动到任何位置。比如,如果在用户试图移动的球体和它试图移动到的字段之间有一堵由其他球体组成的墙,那么用户应该无法移动它

我将所有的字段和球体存储在一个多维数组中[x-loc,y-loc],其中e等于空,s sphere,等等。我尝试在其中运行一个循环,以确定两个字段之间是否有一条清晰的道路,但没有任何效果


有人能告诉我如何解决这个问题吗?

你需要运行一个路径算法,比如。。。从矩阵中省略无效的注释和边,即,您查看的图形将是所有节点的子图,没有球体,因此您只创建合法移动的图形。然后,像这样的路径算法将为您提供所有合法的移动。

请查看有关路径查找的问题:以及有关碰撞检测的问题:然后重试更具体的问题。或者发布你的代码,我们会告诉你哪里不起作用。不要将数据存储为字符串/字符。将其存储为枚举。查理:为什么?这样比较容易,因为球体可以是不同的颜色。如sr代表红色球体,sb代表蓝色球体等。