财神道app下载最新版本-财神到购彩大厅(彩世界)

热门关键词: 财神道app下载最新版本,财神到购彩大厅

javascript版2048小游戏财神到购彩大厅

相关小说

有关找出:

前些天看什么

追寻技艺库

归来首页

  • 苹果ios 9新版备忘录涂鸦工具让您轻便
  • iOS9急忙上手测验评定
  • 微信电话本如何进展四人通话
  • 导致魅族OPPONote刷机败北的原由深入分析
  • 手提式无线电话机版手提式有线电话机QQ音乐加速0.5天怎么拿到?
  • 手提式有线话机YY怎么说话

连锁频道: HTML/CSS  HTML5  Javascript  jQuery  AJax教程  前端代码  正则表明式  Flex教程  WEB前端教程  

javascript版2048小游戏,javascript2048

平昔不技能含量,只是用来演习代码逻辑的。为了代码结构清晰,作者把逻辑调整部分写在全局变量里,客商分界面操作封装在UI对象里,大约就像此了。仅供参考。专门的职业时候,小编的编码风格有人嗤笑太乱了,所以本身想试着写四个不是那么乱的东西出来。。

复制代码 代码如下:
<HTML>
<head>
<title>2048 DEMO</title>
<meta charset='utf-8' />
<!--
 708616 javascript present
 
 [email protected]
-->
<head>
<div id='box'>
MSIE is SB
<script>
//全局方法用于逻辑调控
function x4(n){
    var t=[];
    while(n-->0)t.push([]);
    return t;
}
function xx(f){
    for(var i=0;i<UI.nw;i ){
        for(var j=0;j<UI.nw;j ){
            f(i,j);
        }
    }
}
function make(n){
    return {
        number:n,
        moveStep:0,
        newNumber:n,
        needKill:0
    };
}
function tran(_arr,md){
    var undo=x4(UI.nw);
    var out=x4(UI.nw);
    var ud=UI.undo;
    if(ud.push(undo)>32)ud.shift();
    for(var i=0;i<UI.nw;i ){
        var t=[],o=md%2^1;
        for(var k=0;k<UI.nw;k ){
            undo[i][k]=_arr[i][k].number;
            if(md<3)t.push(_arr[i][k]);else t.push(_arr[k][i]);
        }
        o && t.reverse();
        t=trans(t);
        if(o)t[0].reverse(),t[1].reverse();
        for(var j=0;j<UI.nw;j ){
            var x=i,y=j;
            if(md>2)x=j,y=i;
            _arr[x][y]=t[0][j];
            out[x][y]=t[1][j];
        }
    }
    return [_arr,out];
}
function trans(arr){
    for(var i=0,m=0;i<UI.nw;i ){
        if(arr[i].number===0)m ;else arr[i].moveStep =m;
        var _i=arr[i];
        for(var j=i-1;j>=0;j--){
            if(!arr[j].number)continue;
            if(arr[j].needKill)break;
            if(arr[j].number==_i.number){
                arr[j].needKill=1;
                arr[i].newNumber*=2;
                arr[i].moveStep ;
                m ;
            }
        }
    }
    var out=[];
    for(var i=UI.nw;i--;){
        !arr[i].needKill && arr[i].number && out.unshift(arr[i].newNumber);
    }
    while(out.length<UI.nw)out.push(0);
    return [arr,out];
}
//分界面操作起来,分界面操作的参数通过全局方法来博取
function $(a){return document.getElementById(a);}
UI={};
UI.update=function(d){
    if(UI.locked)return;
    var map=this.map;
    var n=this.times;
    UI.locked=1;//未到位动画在此之前阻止客商动作
    var out=tran(map,d)[1];
    var _n=0,_begin=x4(UI.nw);
    (function(){
        if(_n>n){
            var _q=0;
            xx(function(i,j){
                _q=_q||this.map[i][j].moveStep;
                var o=$('i' i 'j' j);
                o.innerHTML=out[i][j]||'';
                o.className='x r' o.innerText;
                this.map[i][j]=make(out[i][j]);
                o=o.style;
                o.display='block';
                o.left=UI.size*j "px";
                o.top=UI.size*i "px";
            });
            return _q ? UI.addNew():(UI.locked=0);
        }
        xx(function(i,j){
            var o=$('i' i 'j' j),t,o1=o.style,s=d<3?'left':'top';
            if(t=map[i][j][_n==n?'newNumber':'number'])o.innerHTML=t;else o1.display='none';
            if(_begin[i][j]===undefined)_begin[i][j]=parseInt(o1[s]);
            o1[s]=(_begin[i][j] (map[i][j].moveStep*100/n*_n)*Math.pow(-1,d)) 'px';
        });
        _n ;
        setTimeout(arguments.callee,10);
    })();
}
UI.undo=[];
UI.addNew=function(_q){
    UI.locked=1;
    var r=[];
    xx(function(i,j){
        this.map[i][j].number || r.push([i,j]);
    });
    if(!r.length)return UI.locked=0;
    var q=new Date%r.length;q=r[q];
    var b=$('i' q[0] 'j' q[1]);
    var m=this.map[q[0]][q[1]];
    b.innerHTML=m.number=m.newNumber=2<<new Date%2;
    b.className='x r' b.innerText;
    var o=0,q=5;
    (function(){
        if(o<100)setTimeout(arguments.callee,10);
        b.style.opacity=Math.min(o =q ,100)/100;
    })();
    UI.locked=0;//解除锁定
};
//创建
UI.init=function(nw,maxUndo,size,times){
    UI.times=times||8;//动画过度次数
    UI.nw=nw||5;//方阵边长
    UI.map=map=x4(UI.nw);//创制数字块对象
    UI.size=size||100;//单元格宽度
    UI.maxUndo=maxUndo||5;//最大打消步数
    $('box').innerHTML='';
    xx(function(i,j){
        map[i][j]=make(0);
        document.write("<div class='x' id='i" i "j" j "'
         style='left:" (UI.size*j) "px;top:" (UI.size*i) "px;'></div>
         <div class='y'
         style='left:" (UI.size*j) "px;top:" (UI.size*i) "px;'></div>");
    });
    UI.addNew();
    UI.addNew();
};
UI.init(6,3,100,20);
//自动播放,仅用来做示范的。未有做事件绑定
setInterval(function(){UI.update([1,2,3,4][Math.random()*4|0]);},200);
</script>
</div>
<style>
#box{position:absolute;left:50%;top:50%;margin-left:-300px;margin-top:-300px;}
.x,.y{background:#ddd;position:absolute;width:80px;height:80px;font-size:30px;text-align:center;line-height:80px;font-weight:700;font-family:arial;z-index:1;}
.x{z-index:30;}
.r2{background: #eee4da;}
.r4{background: #ede0c8;}
.r8{color: #f9f6f2;background: #f2b179;}
.r16{ color: #f9f6f2;
    background: #f59563; }
.r32{color: #f9f6f2;
    background: #f67c5f; }
.r64{ color: #f9f6f2;
    background: #f65e3b; }
.r128{    color: #f9f6f2;
    background: #edcf72;}
.r256{    color: #f9f6f2;
    background: #edcc61;}
.r512{   color: #f9f6f2;
    background: #edc850;}
.r1024{ color: #f9f6f2;
    background: #edc53f;}
.r2048{    color: #f9f6f2;
    background: #edc22e;}
</style>

以上便是本文所述的全体内容了,希望我们能够喜欢。

没有技巧含量,只是用来练习代码逻辑的。为了代码结构清晰,小编把逻辑调节部分写在全局变量里,客户...

帮客户酌

javascript版2048小游戏

 本文给我们享用的是行使javascript制作的2048小游戏的代码,仅仅是想锻练下本人的编程代码风格,尽量做的规范些,小同伙们何其给些建议。

 

 

未有技艺含量,只是用来演练代码逻辑的。为了代码结构清晰,笔者把逻辑调控部分写在全局变量里,客户分界面操作封装在UI对象里,大约仿佛此了。仅供参考。职业时候,小编的编码风格有人玩弄太乱了,所以自个儿想试着写贰个不是那么乱的东西出来。。

 

代码如下:

<HTML>
<head>
<title>2048 DEMO</title>
<meta charset='utf-8' />
<!--
708616 javascript present

[email protected]
-->
<head>
<div id='box'>
MSIE is SB
<script>
//全局方法用于逻辑调控
function x4(n){
var t=[];
while(n-->0)t.push([]);
return t;
}
function xx(f){
for(var i=0;i<UI.nw;i ){
for(var j=0;j<UI.nw;j ){
f(i,j);
}
}
}
function make(n){
return {
number:n,
moveStep:0,
newNumber:n,
needKill:0
};
}
function tran(_arr,md){
var undo=x4(UI.nw);
var out=x4(UI.nw);
var ud=UI.undo;
if(ud.push(undo)>32)ud.shift();
for(var i=0;i<UI.nw;i ){
var t=[],o=md%2^1;
for(var k=0;k<UI.nw;k ){
undo[i][k]=_arr[i][k].number;
if(md<3)t.push(_arr[i][k]);else t.push(_arr[k][i]);
}
o && t.reverse();
t=trans(t);
if(o)t[0].reverse(),t[1].reverse();
for(var j=0;j<UI.nw;j ){
var x=i,y=j;
if(md>2)x=j,y=i;
_arr[x][y]=t[0][j];
out[x][y]=t[1][j];
}
}
return [_arr,out];
}
function trans(arr){
for(var i=0,m=0;i<UI.nw;i ){
if(arr[i].number===0)m ;else arr[i].moveStep =m;
var _i=arr[i];
for(var j=i-1;j>=0;j--){
if(!arr[j].number)continue;
if(arr[j].needKill)break;
if(arr[j].number==_i.number){
arr[j].needKill=1;
arr[i].newNumber*=2;
arr[i].moveStep ;
m ;
}
}
}
var out=[];
for(var i=UI.nw;i--;){
!arr[i].needKill && arr[i].number && out.unshift(arr[i].newNumber);
}
while(out.length<UI.nw)out.push(0);
return [arr,out];
}
//分界面操作起来,分界面操作的参数通过全局方法来获得
function $(a){return document.getElementById(a);}
UI={};
UI.update=function(d){
if(UI.locked)return;
var map=this.map;
var n=this.times;
UI.locked=1;//未到位动画此前阻止客商动作
var out=tran(map,d)[1];
var _n=0,_begin=x4(UI.nw);
(function(){
if(_n>n){
var _q=0;
xx(function(i,j){
_q=_q||this.map[i][j].moveStep;
var o=$('i' i 'j' j);
o.innerHTML=out[i][j]||'';
o.className='x r' o.innerText;
this.map[i][j]=make(out[i][j]);
o=o.style;
o.display='block';
o.left=UI.size*j "px";
o.top=UI.size*i "px";
});
return _q ? UI.addNew():(UI.locked=0);
}
xx(function(i,j){
var o=$('i' i 'j' j),t,o1=o.style,s=d<3?'left':'top';
if(t=map[i][j][_n==n?'newNumber':'number'])o.innerHTML=t;else o1.display='none';
if(_begin[i][j]===undefined)_begin[i][j]=parseInt(o1[s]);
o1[s]=(_begin[i][j] (map[i][j].moveStep*100/n*_n)*Math.pow(-1,d)) 'px';
});
_n ;
setTimeout(arguments.callee,10);
})();
}
UI.undo=[];
UI.addNew=function(_q){
UI.locked=1;
var r=[];
xx(function(i,j){
this.map[i][j].number || r.push([i,j]);
});
if(!r.length)return UI.locked=0;
var q=new Date%r.length;q=r[q];
var b=$('i' q[0] 'j' q[1]);
var m=this.map[q[0]][q[1]];
b.innerHTML=m.number=m.newNumber=2<<new Date%2;
b.className='x r' b.innerText;
var o=0,q=5;
(function(){
if(o<100)setTimeout(arguments.callee,10);
b.style.opacity=Math.min(o =q ,100)/100;
})();
UI.locked=0;//解除锁定
};
//创建
UI.init=function(nw,maxUndo,size,times){
UI.times=times||8;//动画过度次数
UI.nw=nw||5;//方阵边长
UI.map=map=x4(UI.nw);//创造数字块对象
UI.size=size||100;//单元格宽度
UI.maxUndo=maxUndo||5;//最大撤除步数
$('box').innerHTML='';
xx(function(i,j){
map[i][j]=make(0);
document.write("<div class='x' id='i" i "j" j "'
style='left:" (UI.size*j) "px;top:" (UI.size*i) "px;'></div>
<div class='y'
style='left:" (UI.size*j) "px;top:" (UI.size*i) "px;'></div>");
});
UI.addNew();
UI.addNew();
};
UI.init(6,3,100,20);
//自动播放,仅用来做示范的。未有做事件绑定
setInterval(function(){UI.update([1,2,3,4][Math.random()*4|0]);},200);
</script>
</div>
<style>
#box{position:absolute;left:50%;top:50%;margin-left:-300px;margin-top:-300px;}
.x,.y{background:#ddd;position:absolute;width:80px;height:80px;font-size:30px;text-align:center;line-height:80px;font-weight:700;font-family:arial;z-index:1;}
.x{z-index:30;}
.r2{background: #eee4da;}
.r4{background: #ede0c8;}
.r8{color: #f9f6f2;background: #f2b179;}
.r16{ color: #f9f6f2;
background: #f59563; }
.r32{color: #f9f6f2;
background: #f67c5f; }
.r64{ color: #f9f6f2;
background: #f65e3b; }
.r128{ color: #f9f6f2;
background: #edcf72;}
.r256{ color: #f9f6f2;
background: #edcc61;}
.r512{ color: #f9f6f2;
background: #edc850;}
.r1024{ color: #f9f6f2;
background: #edc53f;}
.r2048{ color: #f9f6f2;
background: #edc22e;}
</style>

 

上述正是本文所述的全部内容了,希望我们能够喜欢。

本文给大家享受的是行使javascript制作的2048小游戏的代码,仅仅是想训练下团结的编制程序代码风格,尽量做的行业内部些,小...

本文由财神道app下载最新版本发布于web前端,转载请注明出处:javascript版2048小游戏财神到购彩大厅