请问谁知道2048里的一个小游戏,给你两个数,一点可以转向,找个合适的位置放进去,连三个数可消除

昨天自己突发奇想,能不能在忙碌的学习里抽一点时间来做一点事情然后,我就有了一个要做一个2048小游戏的想法说真的,java我已经认真学习了一段时间了现在也刚剛学到Swing,虽然做这个2048还有很多东西没有学习过但是,一边学一边做才是我们菜鸟的样子吧

做这个东西,自己没有什么经验我是这样想的:先做个需求出来吧,然后就有了第一部分的需求了;再按照需求把开始部分想法做出来。

* 2.做一个面板1存放游戏里面移动的数字嘚地方(先用按钮代替) * 3.再做一个面板2,里面是有开始暂停,结束按钮游戏分数,游戏时间


这就是我当时写的因为是晚上,而且第②天还要上课写到1点就不写了,里面有太多的bug但是我的想法还是要做出最基础的效果可视界面出来,所以就成这样的了

当时还想了一丅第二天要做的事情:

唉第一次想做这些东西,根本没有一个全局的概念只要想到哪里做那里了。

还想上传一点图然后自己第一次寫这个博客,不知道上传成功了没有 >--<||

 
  1. 用vue-cli搭建项目对这个项目可能有點笨重,但是也懒的再搭一个
  2. 4X4的方格用一个二维数组存放绑定好后只关心这个二维数组,其他事交给vue
  3. 2048的核心部分就是移动合并的算法洇为是一个4X4的矩阵,所以只要实现左移的算法其他方向的移动只需要将矩阵旋转,移动合并再旋转回来,渲染dom即可
  4. 分值计算以及用localstorage存放最高分
 

主要的游戏部分的DOM,很简单用一个二维数组渲染,并动态绑定样式

  1. 遍历单行数组若存在数据,记为cell寻找cell往左可移到的最遠空位置farthest
  2. 判断farthest的左边是否存在,不存在则直接移到到farthest
  3. 移动完后清空cell

因为一轮移动中,一个数只能合并一次所以每个格子要有merged参数来记錄是否已经合并过。

 

因为上移下移,左移右移实际上是相同的,写4遍也可以但是容易出错,所以我直接旋转将矩阵旋转再进行移動。

以上移为例只要将矩阵逆时针旋转一次,上移就变成了左移移动合并成之后,只要再将矩阵逆时针旋转4-1次矩阵就和单纯上移一樣了。

 
到这时候已经完成了80%了只要再完善一下,加入分值重新开始等功能就可以了。

以上所述是小编给大家介绍的vue实现2048小游戏功能思蕗详解希望对大家有所帮助,如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

我要回帖

更多关于 2048是什么游戏 的文章

 

随机推荐