确定修改后的正方形中的平方数

时间:2017-03-22 00:44:47

标签: java algorithm

我正在创建一个火柴棍游戏,如果您不知道那是什么,可以播放here。但是,我需要检查给定的电路板是否是获胜电路板,因此我需要计算电路板上剩余的方块数。例如,我可以拥有董事会:

(Graphical representation)         (Matrix representation)
     ---   ---   ---                   0 1 0 1 0 1 0
    |          |     |                 1 0 0 0 1 0 1
                 ---                   0 0 0 0 0 1 0
    |          |     |                 1 0 0 0 1 0 1
     ---   ---   ---                   0 1 0 1 0 1 0
    |    |     |     |                 1 0 1 0 1 0 1
     ---   ---   ---                   0 1 0 1 0 1 0

有7个方格。但是,我不知道如何确定这里的方格数。每个---|代表一个火柴棍,矩阵中的零表示没有火柴棍,而1代表一个火柴棍的存在。任何帮助都表示赞赏,因为我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果目标只计算方格数且棋盘为9x9: 只有3种类型的正方形:

010   01010  0101010
101   10001  1000001
010   00000  0000000
      10001  1000001
      01010  0000000
             0101010

通过在您的电路板中匹配这些模式,您可以计算平方数。

一个想法是将矩阵视为49个字符串,在其中查找模式。 例如(对于小方块),您将获取17个字符的组,并与010xxxx101xxxx010进行比较,这可以写为正则表达式/010[0-1]{4}101[0-1]{4}010/