javascript实现html网页版的2048游戏源代码

原文:javascript实现html网页版的2048游戏源代码

源代码下载地址: http://www.zuidaima.com/share/1841833892269056.htm

在这里看到了很多有意思的代码。本着分享的精神把自己写的2048的代码也贴出来。当然本人是一个超级菜鸟,有些地方没有完善。欢迎各位大神解决。(界面很丑,不要介意)

支持触屏及电脑键盘操作(wasd四个按键)

index.html




 

2048






setHeight.js

// JavaScript Document

$(document).ready( 			function(){
						   x=$(window).width();
						   y=$(window).height();
						   if(x<=y)
						   {
						   $("td").css("width",x/6)
						          .css("height",x/6);
						   }
						   else
						   {
							   $("td").css("width",y/6)
						          .css("height",y/6);
						   }
						   
				});
  num=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
					i=Math.floor(Math.random()*16);
					num[i]=2;
					i=Math.floor(Math.random()*16);
					num[i]=2;
					strArr=num.toString();
					ga(strArr);
					donum();

canvas.js

// JavaScript Document
getArr=new Array();
function ga(str)
{
	getArr = str.split(",");
}

function donum()
{
	for(i=0;i<16;i++)
	{
		if(getArr[i]!=0)
		{
			document.getElementById(i).innerText=getArr[i];
		}
		else
		{
			document.getElementById(i).innerText="";
		}
	}
	
}

function randnum()
{
	var num;
	for(j=0;j<16;j++)
	{
		if(getArr[j]!=0)
		{
			num++;
		}
	}
	if(num!=16)
	{
		while(1)
		{
			i=Math.floor(Math.random()*16);
			if(getArr[i]==0)
			{
				var rn=Math.ceil(Math.random()*10);
				if(rn>0&&rn<=6)
				{
					getArr[i]=2;
				}
				else if(rn>6&&rn<=9)
				{
					getArr[i]=4;
				}
				else
				{
					getArr[i]=8;
				}
					
				break;
			}
		}
	}
		donum();
}
function down()
{
	for(var num=12;num<=15;num++)
	{
		if(getArr[num]==getArr[num-4])
		{
			getArr[num]=parseInt(getArr[num-4])+parseInt(getArr[num]);
			getArr[num-4]=0;
			if(getArr[num-8]==getArr[num-12])
			{
				getArr[num-8]=parseInt(getArr[num-8])+parseInt(getArr[num-12]);
				getArr[num-12]=0;
			}
		}
		else if(getArr[num-4]==getArr[num-8])
		{
			getArr[num-4]=parseInt(getArr[num-8])+parseInt(getArr[num-4]);
			getArr[num-8]=0;
		}
		else if(getArr[num-8]==getArr[num-12])
		{
			getArr[num-8]=parseInt(getArr[num-12])+parseInt(getArr[num-8]);
			getArr[num-12]=0;
		}
		
		
		for(var j=num;j>=num-8;j=j-4)
		{
			if(getArr[j]==0)
			{
				for(var i=j-4;i>=0;i=i-4)
				{
					if(getArr[i]!=0)
					{
						getArr[j]=getArr[i];
						getArr[i]=0;
						break;
					}
				}
			}
		}
		
	}
	donum();
	randnum();
}


function up()
{
	for(var num=3;num>=0;num--)
	{
		if(getArr[num]==getArr[num+4])
		{
			getArr[num]=parseInt(getArr[num+4])+parseInt(getArr[num]);
			getArr[num+4]=0;
			if(getArr[num+8]==getArr[num+12])
			{
				getArr[num+8]=parseInt(getArr[num+8])+parseInt(getArr[num+12]);
				getArr[num+12]=0;
			}
		}
		else if(getArr[num+4]==getArr[num+8])
		{
			getArr[num+4]=parseInt(getArr[num+8])+parseInt(getArr[num+4]);
			getArr[num+8]=0;
		}
		else if(getArr[num+8]==getArr[num+12])
		{
			getArr[num+8]=parseInt(getArr[num+12])+parseInt(getArr[num+8]);
			getArr[num+12]=0;
		}
		
		
		for(var j=num;j<=num+8;j=j+4)
		{
			if(getArr[j]==0)
			{
				for(var i=j+4;i<=15;i=i+4)
				{
					if(getArr[i]!=0)
					{
						getArr[j]=getArr[i];
						getArr[i]=0;
						break;
					}
				}
			}
		}
		
	}
	donum();
	randnum();
}


function right()
{
	for(var num=15;num>=3;num=num-4)
	{
		if(getArr[num]==getArr[num-1])
		{
			getArr[num]=parseInt(getArr[num-1])+parseInt(getArr[num]);
			getArr[num-1]=0;
			if(getArr[num-2]==getArr[num-3])
			{
				getArr[num-2]=parseInt(getArr[num-2])+parseInt(getArr[num-3]);
				getArr[num-3]=0;
			}
		}
		else if(getArr[num-1]==getArr[num-2])
		{
			getArr[num-1]=parseInt(getArr[num-2])+parseInt(getArr[num-1]);
			getArr[num-2]=0;
		}
		else if(getArr[num-2]==getArr[num-3])
		{
			getArr[num-2]=parseInt(getArr[num-3])+parseInt(getArr[num-2]);
			getArr[num-3]=0;
		}
		
		for(var j=num;j>=num-2;j=j-1)
		{
			if(getArr[j]==0)
			{
				for(var i=j-1;i>=num-3;i=i-1)
				{
					if(getArr[i]!=0)
					{
						getArr[j]=getArr[i];
						getArr[i]=0;
						break;
					}
				}
			}
		}
	}
	donum();
	randnum();
}
function left()
{
	for(var num=0;num<=12;num=num+4)
	{
		if(getArr[num]==getArr[num+1])
		{
			getArr[num]=parseInt(getArr[num+1])+parseInt(getArr[num]);
			getArr[num+1]=0;
			if(getArr[num+2]==getArr[num+3])
			{
				getArr[num+2]=parseInt(getArr[num+2])+parseInt(getArr[num+3]);
				getArr[num+3]=0;
			}
		}
		else if(getArr[num+1]==getArr[num+2])
		{
			getArr[num+1]=parseInt(getArr[num+2])+parseInt(getArr[num+1]);
			getArr[num+2]=0;
		}
		else if(getArr[num+2]==getArr[num+3])
		{
			getArr[num+2]=parseInt(getArr[num+3])+parseInt(getArr[num+2]);
			getArr[num+3]=0;
		}
		
		for(var j=num;j<=num+2;j=j+1)
		{
			if(getArr[j]==0)
			{
				for(var i=j+1;i<=num+3;i=i+1)
				{
					if(getArr[i]!=0)
					{
						getArr[j]=getArr[i];
						getArr[i]=0;
						break;
					}
				}
			}
		}
	}
	donum();
	randnum();
}

演示地址:http://myway5.com/html5/2048


由最代码官方编辑于2014-9-20 18:04:19

你可能感兴趣的:(javascript)