如何使用本地存储和JavaScript创建俄罗斯方块分数计数器

如何使用本地存储和JavaScript创建俄罗斯方块分数计数器,javascript,html,tetris,Javascript,Html,Tetris,我正试图为我的复古游戏网站添加一个分数计数器,该网站完全由JavaScript和html组成。我如何在脚本中添加分数计数器 我尝试了多种不同的方法,甚至尝试使用本地存储,但我就是做不到,有人能帮我吗 let arena = []; let rand; const player = { pos: {x: 0, y: 1}, matrix: null, color: null } rand = Math.floor(Math.random() * pieces.leng

我正试图为我的复古游戏网站添加一个分数计数器,该网站完全由JavaScript和html组成。我如何在脚本中添加分数计数器

我尝试了多种不同的方法,甚至尝试使用本地存储,但我就是做不到,有人能帮我吗

let arena = [];

let rand;

const player = {
    pos: {x: 0, y: 1},
    matrix: null,
    color: null
}

rand = Math.floor(Math.random() * pieces.length);
player.matrix = pieces[rand];
player.color = colors[rand+1];

function drawMatrix(matrix, x, y) {
    for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[i].length; j++) {
            if (matrix[i][j])
                ctx.fillRect(x + j, y + i, 1, 1);
        }
    }
}

function rotateMatrix(matrix, dir) {
    let newMatrix = [];

    for (let i in matrix)
        newMatrix.push([]);

    if (dir === 1) {
        for (let i = 0; i < matrix.length; i++) {
            for (let j = 0; j < matrix[i].length; j++) {
                newMatrix[j][matrix.length - i - 1] = matrix[i][j];
            }
        }
    } else {
        for (let i = 0; i < matrix.length; i++) {
            for (let j = 0; j < matrix[i].length; j++) {
                newMatrix[matrix.length - j - 1][i] = matrix[i][j];
            }
        }
    }

    return newMatrix;
}

function collides(player, arena) {
    for (let i = 0; i < player.matrix.length; i++) {
        for (let j = 0; j < player.matrix[i].length; j++) {
            if (player.matrix[i][j] && arena[player.pos.y + i + 1][player.pos.x + j + 1])
                return 1;
        }
    }

    return 0;
}

function mergeArena(matrix, x, y) {
    for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[i].length; j++) {
            arena[y+i+1][x+j+1] = arena[y+i+1][x+j+1] || matrix[i][j];
        }
    }
}

function clearBlocks() {
    for (let i = 1; i < arena.length-2; i++) {
        let clear = 1;

        for (let j = 1; j < arena[i].length-1; j++) {
            if (!arena[i][j])
                clear = 0;
        }

        if (clear) {
            let r = new Array(tWidth).fill(0);
            r.push(1);
            r.unshift(1);

            arena.splice(i, 1);
            arena.splice(1, 0, r);
        }
    }
}
let arena=[];
让兰德;
康斯特玩家={
pos:{x:0,y:1},
矩阵:空,
颜色:空
}
rand=数学.floor(Math.random()*件长);
player.matrix=个数[rand];
player.color=colors[rand+1];
函数矩阵(矩阵,x,y){
for(设i=0;i

当我完成为游戏添加分数时。我将使用数据库在本地存储之外添加一个领导板,有什么建议吗?

欢迎使用SO!请更具体一点——到底出了什么问题?此外,如果您有最终将数据存储在数据库中的设计,本地存储对您没有任何用处,因为它完全由用户的计算机控制。我试图做的是为游戏中在本地存储中清除的每行区块创建一个分数,然后将其发送到数据库,这样我就可以制作一个leader Board OK,这样您就需要在您的
clearBlocks()。至于DB方面,这是一个更大的考虑,当你得到这个问题时,需要成为一个不同的问题。一般来说,问题越集中、越精确,越有可能得到回答。不要害怕把一个更广泛的问题分解成多个任务,因此也不要害怕提出更多的问题。