JavaScrip实现小游戏2048

JavaScrip实现小游戏2048

最近学习JS,用来练手的小游戏。当然也有借鉴他山之石,缕清思路,这个游戏就很简单了。
_2048.js

// 对象game   
// 需要的变量
// 1、全局变量  存储当前2048数据的变量data,二位数组
// 2、全局变量  存储游戏当前状态开始/结束、state,定义两个常量RUNNING\GAMEOVER
// 3、全局变量  总行数总列数 mRow,mCol
// 4、当前的行列row、col
var game = {
  data: [],
  state: 0,
  RUNNING: 1,
  GAMEOVER: 0,
  mRow: 4,
  mCol: 4,
  score: 0,
  //初始化方法  window.onload(){} start    row、col
  start: function () {
    this.data = [
      [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]
    ];
    this.score = 0;
    this.state = this.RUNNING;

    this.isGameStart();
  },

  //判断游戏状态并执行方法    isGameStart()
  isGameStart: function () {
    if (!this.isFull()) {
      // alert("isGameStart....true")
      this.inint();
      return true;
    }

    for (var i = 0; i < this.mRow; i++) {
      for (var j = 0; j < this.mCol; j++) {
        if (j < this.mCol - 1) {
          if (this.data[i][j] == this.data[i][j + 1]) {
            this.inint();
            return true;
          }
        }
        if (i < this.mRow - 1) {
          if (this.data[i][j] == this.data[i + 1][j]) {
            this.inint();
            return true;
          }
        }
      }
    }
    return false;
  },
  //游戏开始,初始化生成随机数字
  inint: function () {
    //游戏开始,随机位置取随机的2或4
    this.randomNum();
    this.randomNum();
    //更新2048页面的功能
    this.updateView();
  },
  //产生随机数2、4的方法  randomNum()
  randomNum: function () {
    if (!this.isFull()) {
      while (true) {
        // alert("isFull....false")
        var row = parseInt(Math.random() * this.mRow);
        var col = parseInt(Math.random() * this.mCol);
        if (this.data[row][col] == 0) {
          var num = Math.random() < 0.5 ? 2 : 4;
          this.data[row][col] = num;
          //alert("data[row][col]" + this.data[row][col]);
          break;
        }
      }
    }
  },
  //更新2048的数字的方法      updateView()
  //更新视图,包含判断游戏是否结束
  updateView: function () {
    var div = document.getElementById("gameOver");
    div.style.display = "none";
    for (var i = 0; i < this.mRow; i++) {
      for (var j = 0; j < this.mCol; j++) {
        var divObj = document.getElementById("c" + i + j);
        var curr = this.data[i][j];
        //修改div开始标签和结束标签之间的内容
        // alert("curr:"+curr)
        divObj.innerHTML = curr != 0 ? curr : "";
        //修改div的class属性
        divObj.className = curr != 0 ? "cell n" + curr : "cell";
      }
    }
    //data数组没有零的值,即游戏没有空间
    if (this.data.toString().indexOf("0") == -1) {
      //相邻相等的个数
      var num = 0;
      for (var i = 0; i < this.mRow; i++) {
        for (var j = 0; j < this.mCol - 1; j++) {
          if (this.data[i][j] == this.data[i][j + 1]) {
            num++;
          }
        }
      }
      for (var i = 0; i < this.mCol; i++) {
        for (var
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript2048小游戏实现是通过使用JavaScript编写代码来创建一个2048游戏的网页应用程序。该游戏的核心逻辑是通过将相同数字的方块合并来达到2048的目标。在实现过程中,需要使用HTML和CSS来创建游戏的界面,并使用JavaScript来处理游戏的逻辑和交互。具体实现过程需要涉及到数组操作、事件监听、动画效果等技术。 ### 回答2: 2048游戏是一款数字类益智小游戏,玩法非常简单,就是将相同数字的方块进行合并直到得到数字2048实现这个游戏可以使用几乎所有编程语言,因为其界面相对简单,逻辑也比较简单。其中,用JavaScript实现2048游戏也很简单。 JavaScript是一种弱类型的脚本语言,由于其在浏览器中实现,当前web应用程序和移动应用程序开发已经离不开JavaScript了。可以通过JavaScript DOM编程来容易地操纵HTML文档的内容,属性和样式,并且更加灵活自由地控制页面的交互和效果。 HTML5的canvas提供了非常方便的绘图功能,可以很容易地在web页面中绘制图形和游戏效果。我们可以使用canvas元素把游戏的界面绘制出来,并通过JavaScript代码来实现游戏的逻辑。我们可以通过监听键盘事件来控制方块的移动,并且配合进行相应的位置合并。 游戏中,我们需要有一个数据模型,来控制图形块的生成、移动和合并操作。因为游戏是一个可操作的实体,所以使用JavaScript中的面向对象编程,把游戏做成一个对象,可以更好地管理游戏的数据和状态。在游戏对象中,我们可以定义方法,包括渲染页面、绑定事件和状态更新等。 最后,我们可以把这个游戏发布在web服务器上,也可以打包成Hybrid App发布在各种移动应用商店中,玩家可以通过浏览器或者安装在手机中的游戏来体验这个有趣的小游戏。 ### 回答3: JavaScript2048是一款智力益智类小游戏,玩法简单,玩家需要将数字方块合并组成2048这个数字方块。下面将详细介绍JavaScript2048实现过程。 1.界面设计:通过HTML和CSS来完成游戏的界面设计。使用div标签来创建游戏面板,使用CSS进行样式设置,添加游戏背景图案和数字方块样式。 2.生成随机数字:使用JavaScript随机生成2或4的数字方块,将其按照一定规则添加到游戏面板上。 3.移动合并数字方块:通过监听键盘事件,根据不同的按键进行数字方块的移动和合并。当数字方块移动时,需要判断当前位置是否为空,且左侧是否有相同数字,如果为空或是相邻数字相同,就将其合并。 4.判定游戏结束:当游戏中没有空位置,也没有可以合并的相邻数字时即判定游戏结束。 5.添加游戏功能:增加游戏分数统计,最高分数记录,撤销上一次操作等游戏功能。 总之,JavaScript2048小游戏实现离不开HTML、CSS和JavaScript语言,需要对前端基础知识有一定的了解。要完成一个完整的游戏还需要思维逻辑和综合能力,需要不断尝试和优化,才能得到一个优秀的JavaScript2048小游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值