html5小游戏代码-2048游戏

<!doctype html>
<meta name="author" content="苏道涵"/>
<meta name="keywords" content="2048"/>
<meta http-equiv="content-Type" content="text/html;charset=gb2312"/>


<html>
<head>
<title>2048小游戏</title>
<style>
.up,.down,.left,.right{
font-size:30px;


}
canvas{
border-style:solid;
float:left;
}
.right{float:left;
margin-top:80px;
margin-left:400px;
height:100px;
width:50px;
}
.down,.up{

margin-left:550px;
}
.left{
margin-top:80px;
margin-bottom:100px;

}

</style>
</head>


<body>
<h1 align=center>2048小游戏</h1>
<div class="down" onclick="down()">下</div>
<div class="right" onclick="right()">右</div>
<canvas id="drawing" height=200px width=200px ></canvas>
<div class="left" onclick="left()">左</div>
<div class="up" onclick="up()">上</div>
<script>
var tArray=new Array();
for(var i=0;i<4;i++){
tArray[i]=new Array();
for(var t=0;t<4;t++){
tArray[i][t]="";
}
}
var locx;var locy;
function produce(){
locx=Math.ceil(Math.random()*4-1);
locy=Math.ceil(Math.random()*4-1);
if(locx==-1||locy==-1||tArray[locx][locy]!=""){
produce();
}
}
produce();
tArray[locx][locy]=2;
produce();
tArray[locx][locy]=4;
var drawing=document.getElementById("drawing");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.beginPath();
context.lineWidth=0.25;
for(var t2=0;t2<3;t2++){
context.moveTo(50+t2*50,0);
context.lineTo(50+t2*50,200);
}
for(var i2=0;i2<3;i2++){
context.moveTo(0,50+i2*50);
context.lineTo(200,50+i2*50);
}

context.stroke();



}

function display(){
for(var t1=0;t1<4;t1++){
for(var i1=0;i1<4;i1++){
context.clearRect(50*t1,50*i1,50,50);
context.strokeRect(50*t1,50*i1,50,50);
context.fillText(tArray[t1][i1],20+50*t1,30+50*i1);
}
}

}
display();
var zeno=0;
function down(){

for(var t3=0;t3<4;t3++){
for(var i3=0;i3<4;i3++){
if(tArray[t3][i3]==""){
zeno++;
}
else if((zeno!=0)&&(i3>zeno)&&(tArray[t3][i3-1-zeno]==tArray[t3][i3])){
tArray[t3][i3-1-zeno]=tArray[t3][i3-1-zeno]+tArray[t3][i3];
tArray[t3][i3]="";
zeno++;
}
else{

if(tArray[t3][i3+1]==tArray[t3][i3]){
tArray[t3][i3]=tArray[t3][i3]+tArray[t3][i3+1];
tArray[t3][i3+1]="";

}


if(zeno!=0){
tArray[t3][i3-zeno]=tArray[t3][i3];
tArray[t3][i3]="";
}


}





}


zeno=0;
}
output();
display();
zeno=0;
}

function up(){
for(var t3=0;t3<4;t3++){
for(var i3=3;i3>=0;i3--){
if(tArray[t3][i3]==""){
zeno++;
}
else if((zeno!=0)&&(tArray[t3][i3+1+zeno]==tArray[t3][i3])){
tArray[t3][i3+1+zeno]=tArray[t3][i3+1+zeno]+tArray[t3][i3];
tArray[t3][i3]="";
zeno++;
}
else{

if(i3>0&&tArray[t3][i3-1]==tArray[t3][i3]){
tArray[t3][i3]=tArray[t3][i3]+tArray[t3][i3-1];
tArray[t3][i3-1]="";

}


if(zeno!=0){
tArray[t3][i3+zeno]=tArray[t3][i3];
tArray[t3][i3]="";
}


}





}


zeno=0;
}
output();
display();
zeno=0;
}

function right(){
for(var i3=0;i3<4;i3++){
for(var t3=0;t3<4;t3++){
if(tArray[t3][i3]==""){
zeno++;
}
else if((zeno!=0)&&(t3>zeno)&&(tArray[t3-1-zeno][i3]==tArray[t3][i3])){
tArray[t3-1-zeno][i3]=tArray[t3-1-zeno][i3]+tArray[t3][i3];
tArray[t3][i3]="";
zeno++;
}
else{

if(t3<3&&tArray[t3+1][i3]==tArray[t3][i3]){
tArray[t3][i3]=tArray[t3][i3]+tArray[t3+1][i3];
tArray[t3+1][i3]="";

}


if(zeno!=0){
tArray[t3-zeno][i3]=tArray[t3][i3];
tArray[t3][i3]="";
}


}





}


zeno=0;
}
output();
display();
zeno=0;
}

function left(){
for(var i3=0;i3<4;i3++){
for(var t3=3;t3>=0;t3--){
if(tArray[t3][i3]==""){
zeno++;
}
else if((zeno!=0)&&(t3+1+zeno<4)&&(tArray[t3+1+zeno][i3]==tArray[t3][i3])){
tArray[t3+1+zeno][i3]=tArray[t3+1+zeno][i3]+tArray[t3][i3];
tArray[t3][i3]="";
zeno++;
}
else{

if(t3>0&&tArray[t3-1][i3]==tArray[t3][i3]){
tArray[t3][i3]=tArray[t3][i3]+tArray[t3-1][i3];
tArray[t3-1][i3]="";

}


if(zeno!=0){
tArray[t3+zeno][i3]=tArray[t3][i3];
tArray[t3][i3]="";
}


}





}


zeno=0;
}
output();
display();
zeno=0;

}
function output(){
produce();
if(Math.random()>0.5)
tArray[locx][locy]=4;
else
tArray[locx][locy]=2;
}

</script>
</body>

</html> 
  • 24
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值