数据和显示不分离
如果数据和显示分离,意味着它们要分开存储,这样就要用行和列来做唯一标识。
格子位置只计算一次
格子位置只在初始化的时候计算一次,然后在Grid
脚本保存它的初始化位置,如果不保存,就要一直用行和列来做计算。
统一格子逻辑
这个是重点,看了网上的源码,判断能否移动格子、移动格子、游戏是否失败,都是 4 个方向做了逻辑的。这样只会造成代码增加、逻辑难以理解。如果统一了格子逻辑,不管是哪个方向移动,只需要取出那个方向的数据,遍历处理这个方向每一行的移动逻辑就行了。
示例
grids
属性从上到下分别存储了 [0, 0, 0, 2]、[0, 0, 8, 16]、[2, 2, 8, 2]、[0, 8, 32, 2] 这 4 行数据。
gridsReversed
属性从左到右分别存储了 [0, 0, 2, 0]、[0, 0, 2, 8]、[0, 8, 8, 32]、[2, 16, 2, 2] 这 4 行数据。
当右移时,遍历grids
每一行的数据,再移动每一行。
当左移时,遍历grids
每一行的数据,先复制反转每一行的数据,再移动每一行。
当下移时,遍历gridsReversed
每一行的数据,再移动每一行。
当上移时,遍历gridsReversed
每一行的数据,先复制反转每一行的数据,再移动每一行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。