Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 什么是一个算法来检测我的所有游戏棋子是否被不相邻的敌人棋子包围?_Algorithm - Fatal编程技术网

Algorithm 什么是一个算法来检测我的所有游戏棋子是否被不相邻的敌人棋子包围?

Algorithm 什么是一个算法来检测我的所有游戏棋子是否被不相邻的敌人棋子包围?,algorithm,Algorithm,我正在用java实现一个游戏,目标是达到游戏板的边缘。因此,如果一名玩家的所有棋子都被不一定相邻的敌方棋子包围,以致在任何移动次数后都无法到达棋盘边缘,则该玩家将输球 我在尝试开发一种算法来检查这种情况时被难住了。我已经接近观察敌人和被包围部分的情况,但没有取得好的进展。任何帮助都将不胜感激。您可以使用填充方法。我假设你有一块棋盘,上面放着游戏棋子。我们将使用第三种颜色的附加件。如果有白色和黑色,就说你的第三种颜色是红色 这是一种适用于白色的可能算法: 步骤1:如果白色(或红色,见下文)的位置周

我正在用java实现一个游戏,目标是达到游戏板的边缘。因此,如果一名玩家的所有棋子都被不一定相邻的敌方棋子包围,以致在任何移动次数后都无法到达棋盘边缘,则该玩家将输球


我在尝试开发一种算法来检查这种情况时被难住了。我已经接近观察敌人和被包围部分的情况,但没有取得好的进展。任何帮助都将不胜感激。

您可以使用填充方法。我假设你有一块棋盘,上面放着游戏棋子。我们将使用第三种颜色的附加件。如果有白色和黑色,就说你的第三种颜色是红色

这是一种适用于白色的可能算法:

步骤1:如果白色(或红色,见下文)的位置周围没有空格,则完成操作:白色位于边框或其周围。返回答案(并移除所有红色部分,再次参见下文)


第2步:找到一个空白点(必须有一个,否则你会在第1步中结束),在该点添加一个红色。返回到步骤1。

Delaunay三角剖分可以提供任意空间分布的一组点的邻接信息。有一些库可以做到这一点

Delaunay三角剖分的几何对偶称为Voronoi图。后一个概念一开始可能更容易理解

在图像中,您可以看到黑色的Delaunay三角剖分,红色的Voronoi图


您是如何解决问题的?