美文网首页
用js实现2048小游戏

用js实现2048小游戏

作者: nnngu | 来源:发表于2018-02-12 09:51 被阅读118次

笔记仓库:https://github.com/nnngu/LearningNotes


本文永久更新地址

https://github.com/nnngu/LearningNotes/blob/master/JavaScript/01%20%E7%94%A8js%E5%AE%9E%E7%8E%B02048%E5%B0%8F%E6%B8%B8%E6%88%8F.md

1、游戏简介

2048是一款休闲益智类的数字叠加小游戏。(文末给出源代码和演示地址)

2、游戏玩法

在 4*4 的16宫格中,您可以选择上、下、左、右四个方向进行操作,数字会按方向移动,相邻的两个数字相同就会合并,组成更大的数字,每次移动或合并后会自动增加一个数字。

当16宫格中没有空格子,且四个方向都无法操作时,游戏结束。

3、游戏目的

目的是合并出 2048 这个数字,获得更高的分数。

4、游戏截图

[图片上传失败...(image-a08506-1518400324833)]

5、游戏实现原理

(1)首先,把16宫格看成是矩阵的形式

[图片上传失败...(image-cd5100-1518400324833)]

(2)在html中给每个格子添加类名及属性,来记录每个格子的位置

[图片上传失败...(image-127855-1518400324833)]

注:类名item是每个格子的类名,emptyItem是空格子的类名,nonEmptyItem是非空格子的类名。

(3)游戏开始时,随机生成两个数字,2或者4,出现在矩阵中任意位置

[图片上传失败...(image-4167be-1518400324833)]

这部分是通过类名emptyItemnonEmptyItem来实现的。

步骤:

① 随机生成一个数字2或者4

② 获取所有空元素(类名emptyItem

③ 随机选择一个空元素,将生成的数字填充到空元素中,并将类名emptyItem移除,添加类名nonEmptyItem,即非空元素

④ 重复①、②、③步,再随机生成一个数字填充到随机的位置。

(4)游戏的核心在于移动

移动有四个方向:上、下、左、右。实现思路如下:

如果触发向左移动
  遍历所有非空元素
    如果当前元素在第一个位置
           不动
    如果当前元素不在第一个位置
      如果当前元素左侧是空元素    
              向左移动
      如果当前元素左侧是非空元素    
        如果左侧元素和当前元素的内容不同    
                  不动
        如果左侧元素和当前元素的内容相同    
                  向左合并
 

如果触发向右移动
  遍历所有非空元素
    如果当前元素在最后一个位置     
           不动
    如果当前元素不在最后一个位置
      如果当前元素右侧是空元素   
              向右移动
      如果当前元素右侧是非空元素    
        如果右侧元素和当前元素的内容不同    
                  不动
        如果右侧元素和当前元素的内容相同    
                  向右合并

向上移动 和 向下移动的思路同上。

(5)判断游戏是否结束

获取所有元素
获取所有非空元素
如果所有元素的个数 == 所有非空元素的个数
  循环遍历所有非空元素
    上面元素存在 && (当前元素的内容 == 上面元素的内容)   return
    下面元素存在 && (当前元素的内容 == 下面元素的内容)   return
    左边元素存在 && (当前元素的内容 == 左边元素的内容)   return
    右边元素存在 && (当前元素的内容 == 右边元素的内容)   return
   以上条件都不满足,Game Over! 

源代码:https://github.com/nnngu/js_game_2048

演示地址:https://nnngu.github.io/js_game_2048/index.html

相关文章

  • 用js实现2048小游戏

    笔记仓库:https://github.com/nnngu/LearningNotes 本文永久更新地址 http...

  • 用C语言实现2048游戏

    2048_C_code 用C语言编写的2048 1 要实现我们的 2048 小游戏,需要涉及一些数据结构的知识,以...

  • python—手把手教你实现2048小游戏

    相信2048这个游戏对大家来说一定不陌生,下面这篇文章就主要给大家介绍了怎么用Python实现2048小游戏,文中...

  • 2048小游戏javascript实现

    原生js实现2048小游戏 GitHub地址 ,希望大家多多捧场觉得还可以就给个star吧~ 详情 利用了css3...

  • 用Python实现小游戏2048

    转自:Python中文网社区论坛 直接上代码吧!

  • 微信小程序版2048

    今天代码君教大家做一款2048游戏,用微信小程序来做,话不多说,先上效果图 2048的实现 一、2048.js 二...

  • 用js做个简单的2048小游戏

    单页面,用到了jQuery来操作。用Ajax请求返回数据,后台用PHP查询数据库。有兴趣的可以玩一玩。这是2048...

  • JS小游戏——flappy 2048

    这款游戏是像素鸟+2048风格的合体版,仿制2048all上面的同名游戏,个人原生JS代码大概写了150行,大家都...

  • python GUI编程(3)2048

    这次我们用tkinter函数式编程来实现小游戏2048,下面是我的源码,还可以再优化: 这种函数式编程中的glob...

  • MFC实现2048小游戏

    删除最初的static text框和两个button 手动添加一个MyRect.h到头文件 手动添加一个MyRec...

网友评论

      本文标题:用js实现2048小游戏

      本文链接:https://www.haomeiwen.com/subject/mjdrtftx.html