填充三维数组向量JavaScript

时间:2016-12-30 04:35:02

标签: javascript arrays

我有一个代表游戏主板的三维数组。线条和列的传统2D和第三维,因为每个单元格可以是堆栈。这样的事情:

[[[#],[b,#],[b,w,b,b,b,#],[b,#],[b,w,w,b,#]],[[b,#],[b,b,#],[b,b,w,#],[b,b,b,#],[b,b,#]],[[b,#],[b,b,b,b,#],[b,w,#],[b,b,b,#],[b,#]],[[b,#],[b,#],[w,w,w,#],[b,b,w,w,#],[b,w,#]],[[b,#],[b,b,b,b,#],[b,w,b,#],[b,w,#],[b,b,#]]]

我已经解析过了,现在它代表了我的 board 变量。 然后我这样做了:

this.stacks = [];
gameBoard.prototype.loadTiles = function(board){

    this.tiles = [];
    for(var i=0; i<board.length; i++) {
        for (var j = 0; j < board[i].length; j++) {
            var stack = board[i][j];
            var player = board[i][j].slice(-1)[0];
            this.stacks.push(stack);
        }

    }
    this.createTiles(this.stacks);
};

现在我的 this.stacks 是一个包含所有堆栈的向量。 问题是,我需要创建 tiles ,形成堆栈的东西,比如扑克筹码!所以我做了类似的事情:

gameBoard.prototype.createTiles = function(tiles) {
    for(var i=0; i<tiles.length; i++) {
        var stack = tiles[i];
        for(var j=0; j< stack.length; j++) {
            var type = stack[j];
            //console.log("TYPE" + type);
            var player = stack[stack.length - 1];
            //console.log("PLAYER" + player);
            this.stackPiles = this.createTile(type, this.scene, i*6 + j+100, player);

        }
    }

这就是我想的问题。我需要在我的图块上调用显示功能,但我需要按行,列和堆栈分组以正确填充我的5x5矩阵:

for (var i = 0; i < this.matrix.length; i++) {
        this.matrix[i] = new Array(5);
    }

    for (var i = 0; i < this.matrix.length; i++) {
        for (var j = 0; j < this.matrix.length; j++) {
            //this.matrix[i][j] = new gamePiece(scene, 1 + i*this.matrix.length + j);
        }
    }

我该怎么做。如何从堆栈数组中的每个元素创建切片,然后将它们放在我的2D矩阵上,以便(再次)调用每个元素上的显示函数?

谢谢你, 此致

0 个答案:

没有答案