Tile Offset Algorithm

by truefreestyle

HTML

<p id="result"></p>

JavaScript

// Based on a StackOverflow answer by Jeremy Robson http://goo.gl/lFE7O
var BOARD_SIZE = 21;
    CENTER = Math.floor(BOARD_SIZE / 2);

function setMovement (speed, offset) {
    speed = speed + offset;
    
    var matrix = [],
        distance,
        i,
        j;
    
    for (i = 0; i < BOARD_SIZE; i++) {
        matrix.push([]);
    
        for (j = 0; j < BOARD_SIZE; j++) {
            distance = Math.abs(i - CENTER) + Math.abs(j - CENTER);
            if (distance < speed && distance >= offset) {
                matrix[i][j] = 1;
            } else {
                matrix[i][j] = 0;
            }
        }
        
        $('#result').append(matrix[i].join(', ') + '<br/>');
    }    
}

setMovement(3, 1);