我正在做一个游戏,我需要一种方法来检查指定的单元格是否是包含相同角色的单元格的水平连续序列的一部分。单元格序列的长度必须为1。如果单元格是长度至少为1的水平序列的一部分,则为true,否则为false。
到目前为止,我已经知道它可以检测指定字符行中是否有至少5个连续的单元格具有相同字符。有人可以帮忙吗?
您可以简单地使用两个循环(每边一个)搜索双方,并检查连续单元格的总和是否确实是l。类似于以下内容:
l
public static boolean checkPositionRow(char[][] a, int row, int col, int l) { int counter = 1; //starting from 1, because for a[row][col] itself char charAtPosition = a[row][col]; //expand to the right as much as possible for (int i = col+1; i < a[row].length && a[row][i] == charAtPosition; i++) counter++; //expand to the left as much as possible for (int i = col-1; i >= 0 && a[row][i] == charAtPosition; i--) counter++; return counter >= l; }