首先,狠顶楼主的游戏精神,很欣赏

,想当年我也在学校的时候,也是没事就搞个游戏玩玩,
其次,index(),index1(),index2()
LZ,你这是防反编译的混淆命名吗?
本来想看你的消块算法,看的我直

,呵呵,没别的意思
好像循环有点多,三层了.再想想,有别的办法的.
如:点的是(X,Y)(M,N)两点[先不提一条线,同一点等特殊情况]
则消块的线路一定在一个井字型的范围内.提示到这...

另外,看你的重排算法,有点想知道你拼图的打乱算法是怎么做的,否则容易出现拼不回去的情况哦.
以一个块为准,进行随机冲乱的算法推荐一下.
还有,为什么初始要留着空格呢,降低难度?