我正在实施一个7 x 7的棋盘游戏,w =白色宝石,b =黑色宝石。我想算一下最终结果。请记住,这是一个游戏,我们只计算被黑色或白色石头包围的空单元格。
0 1 2 3 4 5 6
0 b
1 b w
2b b w w
3 w w
4 w w
5 w w w
6
我想计算w和b包围的所有交叉点,这意味着我想计算白色宝石和0,0 0的细胞2,3 3,3 3,3 3,4 4,3 4,4, 1 1,0 1,1黑石头。我提出的所有算法都太复杂了。
我将使用GNU汇编程序实现最终解决方案。我刚开始学习汇编语言,所以我不希望它变得复杂。该算法可以使用循环和数组,但不能使用递归或函数调用。
我想看看线性代数中是否有一个简单的算法来解决这个问题,或者如果你能在不使用递归和函数调用的情况下描述一个简单的算法,我将不胜感激。
答案 0 :(得分:2)
泛洪填充类型算法可能适用:
洪水填充是一种相当标准的算法,如:
请注意,对于这些算法,如果电路板被一层不可见的“边缘”单元所包围,它可以更容易。边缘单元和占用单元没有邻居用于算法。
答案 1 :(得分:0)
我会尝试一种算法,它沿着由空格形成的形状边缘移动,如下所示:
然后,您可以使用形状来确定每个玩家拥有的空间数量。
因为这个问题被标记为“家庭作业”,所以需要考虑更多:这种情况的结果是什么,你如何解释它?
0 1 2 3 4 5 6
0
1 w w w w w w
2 w
3 w b b b
4 w b b
5 w b b b
6 w