上QQ阅读APP看书,第一时间看更新
2.3.3 判断图片块能否移动
选取图片块后并不能马上移动它的位置,因为移动图片块需要满足一个基本条件,即它的周围要有空白的方格,以便图片块能够放入其中。根据游戏规则,图片块可以朝水平或垂直方向移动,一次移动一个方格的距离。于是需要分别对上、下、左、右四个方向进行检查,看看图片块能否朝某个方向移动。下面以向上检查为例进行说明。
若要向上移动图片块,首先要保证该图片块所在的方格不能位于最上面一行,即grid_y的值要大于零。其次要看它上方紧邻的方格中是否存在图片块,若不存在则可以移动,否则不能移动。
对于某图片块所在的方格来说,其上方相邻方格的水平索引值也是grid_x,垂直索引值则为grid_y-1。而为了判断上方的方格是否存在图片块,又需要遍历一次pics列表,逐一检查每个图片块所在方格的水平和垂直索引值是否分别与grid_x和grid_y-1的值相等。若没有找到满足条件的图片块,说明上方的方格是个空白块,于是可以将当前图片块向上移动一格。
其他三个方向的检查过程也是类似的。