13.3.1 定义数据模型
《疯狂连连看》的游戏界面是一个n×m的"网格",每个网格上显示一张图片,对游戏开发者来说,这个网格只需要用一个二维数据来定义,而每个网格上所显示的图片对底层的数据模型来说,不同的图片对应于不同的数值即可。图13.6显示了数据模型的示意。
对于图13.6所示的数据模型,只要让数值为0的网格上不绘制图片,其他数值的网格则绘制相应的图片,就可显示出《疯狂连连看》的游戏界面。
本程序实际上并不是直接使用int[][]数组来保存游戏的状态数据,而是采用NSArray来保存游戏的状态模型,而NSArray的元素又是NSArray,相当于创建二维数组,数组元素是FKPiece。因为FKPiece对象封装的信息更多,不仅包含了该方块左上角的X、Y坐标,还包含了该FKPiece所显示的图片、图片ID(这个图片ID可作为该FKPiece的数据)。