原生JS编写的2048小游戏代码

原生JS编写的2048小游戏代码-精品资源网
原生JS编写的2048小游戏代码
此内容为免费资源,请登录后查看
0
免费资源

原生JS编写的2048小游戏代码

这是一款原生JS编写的2048小游戏代码,简单的2048网页小游戏,码农们可以学习开发方法也可以在线玩。

js代码

<script type=\"text/javascript\">
// 模块化开发思路
var json={
	// 创建初始化函数
	init:function(){
	var otab= document.querySelector(\'.tab\'),
		str=\'\',
		id=1;//返回文档指定的css元素,并保存
		for(var i=0;i<4;i++){
		   str+=\'<tr>\';
		   for(var j=0;j<4;j++){
			str +=\'<td id=\"\' + id++ +\'\"></td>\';
		   }
		   str +=\'</tr>\';
		}
		 otab.innerHTML=str;                       
		 this.randomNum();
		 this.randomNum();
		 this.result();
	},
	
	//创建一个任意区间的随机函数
	myRandom:function(min , max){
		return Math.round(Math.random() * (max-min) + min);
	},
	//随机在格子上生成一个数字
	randomNum : function(){
	  var num = this.myRandom(1,16);
		ogrid=document.getElementById(num);
		if(ogrid.innerHTML ==\'\'){
			ogrid.innerHTML= this.myRandom(1,2)*2;
		}else{
			this.randomNum();
		}
	},
	
	//上键
	top:function(){
		for(var i=1;i<=4;i++){
			for(var j=i;j<=i+12;j+=4){
				for(k=j;k>4;k-=4){
				   this.change(document.getElementById(k -4),
						  document.getElementById(k));
				}
			}
		}
	},
	
	//下键
	 bottom:function(){
		 for(var i=1;i<=4;i++){
			for(var j = i+12;j>=i;j -=4){
				for(var k = j;k < 13;k +=4){
					 this.change(document.getElementById(k +4),
						  document.getElementById(k));
				}
			}
		 }
	 },
	 //左键
	 left:function(){
		for(var i=1;i<=13;i+=4){
			for(var j=i; j<= i+3; j++){
				for(var k=j; k>i;k--){
					 this.change(document.getElementById(k -1),
						  document.getElementById(k));
				}
			}
		}
	 },
	 //右键
	 right:function(){
		for(var i=1;i<=13;i +=4){
			for(var j = i+4; j>=i;j--){
				for(var k=j;k<i+3;k++){
					 this.change(document.getElementById(k +1),
						  document.getElementById(k));
				}
			}
		}
	 },
	//移动合并检测函数
	change :function(before,after){
		//移动
		if(before.innerHTML == \'\' && after.innerHTML != \'\'){
			before.innerHTML= after.innerHTML;
			after.innerHTML=\'\';
		}
		//合并
		if(before.innerHTML != \'\' && before.innerHTML == 
		after.innerHTML){
			 before.innerHTML *=2;
			 after.innerHTML=\'\';
		}
		
	},       
	//改变颜色计算结果函数
	result:function(){
		var color={\'\':\'#fff\',\'2\':\'#0f0\',\'4\':\'#00ccff\',\'8\':\'#ff9900\',
		\'16\':\'#00cc66\',\'32\':\'#ffcccc\',\'64\':\'#ff33ff\',\'128\':\'#0066cc\',
		\'256\':\'#6633cc\',\'512\':\'#ff0099\',\'1024\':\'#990033\',\'2048\':\'#6600ff\',
		\'4096\':\'#cc0066\'},
		score=0;
		for(var i =  1 ; i <= 16 ;i++){
			var ogrid=document.getElementById(i);
			ogrid.style.backgroundColor=color[ogrid.innerHTML];
			score += ogrid.innerHTML * 10;
		}
		 document.querySelector(\'.score\').innerHTML=score;
	}
}
window.onload=json.init();//加载完成后调用init
document.onkeydown=function(e){
  if(/38/.test(e.keyCode) ) json.top();
  if(/40/.test(e.keyCode) ) json.bottom();
  if(/37/.test(e.keyCode) ) json.left();
  if(/39/.test(e.keyCode) ) json.right();
  if(/13/.test(e.keyCode) ) json.init();
  json.randomNum();
  json.result();
}

</script>

© 版权声明
THE END
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容