我正在尝试制作一个基于瓷砖的游戏,其中瓷砖填充有随机颜色,如果用户点击一个瓷砖,它就会消失。这我已经完成了。
现在,我想做的是只有当 2 个或更多相邻的瓷砖具有相同的颜色时,瓷砖才会消失。我已经使用洪水填充算法来破坏瓷砖。如何修改此代码,使其仅在某个计数值大于 2 时才起作用。
这是破坏瓷砖的代码:
private void Destroy(int x,int y,int old_Value,int new_Value)
{
if (GameArr[x,y].BlockValue == old_Value)
{
//if some count > 2 then only
GameArr[x, y].BlockValue = 0;
Destroy(x + 1, y, old_Value, new_Value);
Destroy(x - 1, y, old_Value, new_Value);
Destroy(x, y + 1, old_Value, new_Value);
Destroy(x, y - 1, old_Value, new_Value);
}
}
我如何获得这个计数值?
- 如果我在方法本身中传递一个计数变量并检查值是否超过 2 然后销毁,它不会销毁前两个图块。
- 如果我用另一种方法检查瓷砖是否可破坏,它会在计数时将 blockValues 设置为 0。
我该怎么做。任何帮助,将不胜感激。