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);

填充效果如下

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

posted @ 2014-09-13 14:20  ChuckLu  阅读(378)  评论(0编辑  收藏  举报