如何计算像数独游戏这样的网格中的单元间隙?

时间:2019-04-04 13:24:16

标签: javascript html5 actionscript-3 game-development starling-framework

这就是我现在正在使用并且正在工作

var cellSize:Number = 36;
var cellGap:Number = 4;
var row:Number;
var col:Number;

for (var a:int = 0 ; a < puzzleSTR.length ; a++)
{
        col = a % 9;
        row = Math.floor(a / 9);

    var cell:Cell = new Cell(puzzleSTR.charAt(a));
    cell.x = col * (cellSize + cellGap);
    cell.y = row * (cellSize + cellGap);                
    container.addChild(cell);
    cells.push(cell);
}

这导致9 * 9网格之间有4个像素的间隙,现在我想要相同的结果,但水平和垂直每3个单元格的间隙应该是8个,就像数独一样。

我使用actionscript3,但是我只需要任何语言的概念 谢谢

1 个答案:

答案 0 :(得分:1)

由于您是绝对定位元素,因此需要从第四个col和中的每个后续col 中额外增加4px的间隙(除了默认的4px间隙,等于8px)。那排。从第7列起,您需要添加8px来弥补这两个差距。

相同的逻辑适用于行间距。请注意,由于变量是从零开始的,因此我正在与36进行比较以得出第四和第七列。

var extraColPadding = col >= 6 ? 8 : col >= 3 ? 4 : 0;
var extraRowPadding = row >= 6 ? 8 : row >= 3 ? 4 : 0;

cell.x = col * (cellSize + cellGap) + extraColPadding;
cell.y = row * (cellSize + cellGap) + extraRowPadding;