首页 > 语言 > JavaScript > 正文

javascript版2048小游戏

2024-05-06 14:44:24
字体:
来源:转载
供稿:网友

没有技术含量,只是用来练习代码逻辑的。为了代码结构清晰,我把逻辑控制部分写在全局变量里,用户界面操作封装在UI对象里,大概就这样了。仅供参考。工作时候,我的编码风格有人吐槽太乱了,所以我想试着写一个不是那么乱的东西出来。。

代码如下:
<HTML>
<head>
<title>2048 DEMO</title>
<meta charset='utf-8' />
<!--
 708616 javascript present
 http://treemonster.sinaapp.com
 1696292264@qq.com
-->
<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++){

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选