综合案例
1.需求分析
2048游戏是一款数字益智游戏,如图所示。具体游戏规则如下:
① 玩家每次可以选择上下左右其中一个方向移动。
② 每移动一次,所有数字方块都会往移动的方向靠拢。
③ 相同数字方块在靠拢时会相加。
④ 每次移动完成后,系统会在空白的方块中随机添加2或4。
⑤ 当所有方块中填满数字并不能相加时,游戏结束。
⑥ 玩家的得分为相同数字之和的累加。
根据上述游戏规则,该游戏需实现以下功能:
① 显示游戏界面。
② 上下左右移动。
③ 添加随机数字。
④ 游戏是否结束。
为方便读者理解各功能之间的联系,此处画出程序的流程图,如图所示。
2.程序设计
对程序中各功能有了初步了解后,本节将带领大家实现每个功能。首先,程序需选用合适的数据结构,由于游戏可以看成由4×4个数字组成,每移动一次,就是对这4×4个数字进行操作,因此数据结构可以选择二维列表(二维列表类似于二维矩阵),具体如下所示: