CodeCombat最后一题GridMancer

http://codecombat.com/play/level/gridmancer

刚开始没看懂,题目,后来才慢慢看懂的,

题目要求,用最少的矩形框填充空白的地方

var grid = this.getNavGrid().grid;

var tileSize = 4;

for(var y = 0; y + tileSize < grid.length; y += tileSize) {//控制行y=0,是最下面一行

    for(var x = 0; x + tileSize < grid[0].length; x += tileSize) {//遍历y行的所有列

        var occupied = grid[y][x].length > 0;//判断y行x列,是否被占用[length为0或1,0表示未填充]

        if(!occupied) {

            this.addRect(x + tileSize / 2, y + tileSize / 2, tileSize, tileSize);

            this.wait();  // Hover over the timeline to help debug!

        }

    }

}

上面是题目提供的原始代码,可以将所有的空白地砖填充,但是一共用了176个方块。

测试代码如下,可以手动填充

this.addRect(6,6,12,12);

this.addRect(14,12,4,24);

this.addRect(18,26,4,12);

this.addRect(26,22,12,4);

this.addRect(30,10,4,20);

填充效果如下

CodeCombat最后一题GridMancer

从左向右,一个是五个矩形,对应上面的5行测试代码

你可能感兴趣的:(code)