280行代码:Javascript 写的2048游戏

2048 原作者就是用Js写的,一直想尝试,但久久未动手。

昨天教学生学习JS代码。不妨就做个有趣的游戏好了。2048这么火,是一个不错的选择。

思路:

1. 数组 ,2维数组4x4

2. 移动算法,移动后有数字的对齐,无数字(我用的0,但不显示)补齐。

移动前

移动后(注意程序合并了第一行2个2,并产生了新的2)

移动算法分2步:

第一步骤:移动

第二步骤:合并

移动代码参考:

[html] view plaincopy

  1. function left(t,i)
  2. {
  3. var j;
  4. var len = t[i].length;
  5. for (j=0;j<len-1;j++)
  6. {
  7. if (t[i][j] == 0 && t[i][j+1] != 0)
  8. {
  9. temp = t[i][j];
  10. t[i][j] = t[i][j+1];
  11. t[i][j+1] = temp;
  12. left(t,i);
  13. }
  14. }
  15. }

合并代码参考:

[html] view plaincopy

  1. function lcombine(a,i)
  2. {
  3. var len = a[i].length;
  4. for(var j=0;j<len-2;j++)
  5. {
  6. if (a[i][j] == a[i][j+1])
  7. {
  8. a[i][j] *=2;
  9. a[i][j+1] = 0;
  10. left(a,i);
  11. break;
  12. }
  13. }
  14. }

3.显示

显示部分CSS来源 2048源作者程序。

显示代码:

[html] view plaincopy

  1. function display_div ()
  2. {
  3. var i,j;
  4. var n = "#d";
  5. for (i = 0 ;i < 4 ;i++)
  6. {
  7. for(j=0;j<4;j++)
  8. {
  9. if (a[i][j] !=0)
  10. $(n+(i*4+j)).html("<div class=‘tile tile-"+a[i][j]+"‘><div class=‘tile-inner‘>"+a[i][j]+"</div></div>");
  11. else
  12. $(n+(i*4+j)).html("");
  13. }
  14. }
  15. }

这段代码是把数组内容显示到  4x4表格内。

源代码及在线演示:http://jsbin.com/biximuho/6/edit

280行代码:Javascript 写的2048游戏,布布扣,bubuko.com

时间: 2024-12-25 12:07:14

280行代码:Javascript 写的2048游戏的相关文章

60行代码:Javascript 写的俄罗斯方块游戏

先看效果图: 游戏结束图: javascript实现源码: <!doctype html> <html><head><title>俄罗斯方块</title> <meta name="Description" content="俄罗斯方块Javascript实现"> <meta name="Keywords" content="俄罗斯方块,Javascript,

【分享】60行代码:Javascript 写的俄罗斯方块游戏

效果如下,可测试: javascript实现源码: <!doctype html> <html><head><title>俄罗斯方块</title> <meta name="Description" content="俄罗斯方块Javascript实现"> <meta name="Keywords" content="俄罗斯方块,Javascript,实现,短

用javascript实现一个2048游戏

早就想自己写一个2048游戏了,昨晚闲着没事,终于写了一个如下图,按方向键开始玩吧.如果觉得操作不方便,请直接打开链接玩吧:http://gujianbo.1kapp.com/2048/2048.html 附上源代码链接:https://github.com/gujianbo/js2048 个人博客地址:http://gujianbo.1kapp.com/ 新浪微博:http://weibo.com/gujianbobo 欢迎读者交流讨论并提出宝贵意见. 用javascript实现一个2048游

从零开始学C语言,200行代码完成一个打字母游戏!

很多刚开始学习编程的同学都希望自己可以去开发一些游戏,当学习了c语言的时候却发现总是用c语言去解决一些数学问题,今天我就分享给大家一个我学习c语言时候学到的一些好玩的东西,希望可以帮助大家保持对编程的兴趣. 创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之以恒C++爱好群,如果你想要学好C++最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习

JavaScript写一个拼图游戏

拼图游戏的代码400行, 有点多了, 在线DEMO的地址是:打开: 因为使用canvas,所以某些浏览器是不支持的: you know: 为什么要用canvas(⊙o⊙)?  因为图片是一整张jpg或者png, 我们要用把图片导入到canvas画布, 然后再调用上下文context的getImageData方法, 把图片处理成小图, 这些小图就作为拼图的基本单位: 如何判断游戏是否结束, 或者说如何判断用户拼成的大图是正确的? 我们就要在刚刚生成的小图上面添加自定义属性, 后期在小图被移动后再一

分享一下自己写的2048游戏(3*3,4*4,5*5,6*6多种玩法,可反悔)

2048是一款非常常见的小游戏,所以我也想自己尝试着写一款,给自己练练手.说道练手,这里需要交代一下:我从事Android的工作刚刚一年,平时的工作主要是客制化UI和修改Bug,也就是这里改改,那里改改,因此,完整的开发项目的机会比较少,所以,对我而言,想要提高自己的编程水平,抽出时间自己做一些小项目是有意义的.虽然平时的工作主要是客制化UI和修改bug,但并不意味这我的工作是简单枯燥的,我时常会遇到系统中的一些bug,这样我有机会阅读android系统的源码,并从中分析问题出现的原因,这份工作

原生js写一个2048游戏

本例逻辑1,一个二维数组,记录数字方块的数值与对应dom对象 2, 一个一维数组,记录空白方块的坐标(行与列)3,左移,最左边一列不做移动测试,从左边倒数第二列开始依次向左边做移动测试,若可合并,则向左移,数字不变或乘2.其他方向同逻辑 4, 判断输赢,若某个方块的值达到2048,即赢,游戏可以继续.当空白坐标数组的长度为0是,依次检测每个方块在四个方向可否移动,若都不能,即游戏结束. → → → → 预览 ← ← ← ← js代码: /*game 2048*/ //事件处理对象 var Eve

纯JS写的2048游戏,分享之

这几天玩儿着2048这个游戏,突然心血来潮想练习下敲代码的思路.于是乎就模仿做了一个,到眼下位置还没有实现动态移动,不是非常好看,只是玩儿着自己模仿的小游戏还是蛮爽的,哈哈 假设没有玩儿过这个游戏,最好先试玩儿下,这样看起下边的代码来easy些 用的是event.临时不支持firefox下玩儿... 试玩儿>> 里边好多步骤写得不够简单介绍明了.欢迎指正 两个小时构思,主要构思用什么形式存表格,以及当中用到的几个比較关键的方法,比方:是否须要移动,是否须要合并,移动方法.合并方法等,然后開始编

[500lines]500行代码学写web server

项目地址:https://github.com/aosabook/500lines/tree/master/web-server.作者是来自Mozilla的Greg Wilson.项目是用py2写成.下面文章中贴出的是已经转换后的能在python3.4下运行的代码,所以可能会与原先的有少许不同. 简单地讲,你在浏览器里输入一个网址,浏览器作为客户端会通过DNS解析域名找到对应的IP,并将这串字符串的一部分作为请求发给这个IP的服务器,服务器解析字符串,解析出你的请求内容做出相应处理,然后把一串字