整体描述
2048作为一个简单的数字游戏,html+css+JavaScript实现起来难度并不大,上下左右移动的算法是该游戏的核心。
游戏的画面很简单,整体16个方格大部分都是灰色的,当玩家拼出数字之后就会改变颜色,整体格调比较简单。
一开始方格内会出现2或者4这两个小数字,玩家每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢时会相加。玩家要想办法在这小小的16格范围中凑出“2048”这个数字方块。
数据结构
采用的4行4列的二位数组,与游戏界面的4*4方格类似,便于具体操作。
核心算法描述
采用面向对象编程,整个游戏作为一个对象。游戏中需要的二维数组、行数、列数、暂停标志、游戏结束标志等均作为游戏对象的属性。上下左右移动操作、生成随机数字、更新页面数据和样式等均作为游戏对象的方法。
上移方法描述
1、找到每一行的每个数a的右边的不为0的数b,如果找不到则表示不需要移动。
2、找到后,如果a本身为0,则需要将b的值付给a,然后将b设置为0,完成a和b的交换。如果a=b,则需要将a乘以2,然后将b设置为0,完成叠加。
具体代码参考后文中的源代码。右移、上移、下移实现与左移类似。
————————————————
版权声明:本文为CSDN博主「袁成新(Chauncey Yuan)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接: