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行测试代码