用App Designer 制作2048小游戏
用App Designer制作的2048,MATLAB版本是2020b。记录下创作思路,以免日后忘记。
APP界面设计
APP界面如下,为了好玩,还加入了游戏进行时播放音乐的功能。
下面是游戏结束界面:
除了按钮和开关部分,其余都可用标签控件制作。游戏结束界面在制作时将其Visible属性设为Off(确保在主界面上层),当判定游戏结束时再将Visible属性修改为On即可。
app.gameOverLabel.Visible = 'on';
app.gameOverLabel2.Visible = 'on';
app.gameOverLabel3.Visible = 'on';
标签和按钮上的文字通过其Text属性修改
按钮上的图案可通过修改其Icon属性改变
规则设计
游戏每一步可以选择“上、下、左、右”中的一项操作,每项操作需关注三点,一是数字格向空白格的转移,二是相同数字格的合并相加,三是移动完成后会随机将一个空白格变为2。
我们不可能直接对方格进行操作,考虑将其与一个 4 × 4 4\times4 4×4矩阵对应起来,则数字格向空白格的转移可以这样做:
设有 2 × 3 2\times3 2×3矩阵 A \bm{A} A
[ 1 0 2 3 4 5 ] \left[\begin{array}{l} 1 &0 &2 \\ 3 &4 &5 \end{array}\right] [130425]
现要把第二行“向上推”,即要使数字“4”的位置由 ( 2 , 2 ) (2,2) <