Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for [old] Moore Neighbourhood by Sim0000
"use strict";
function countNeighbours(data, r, c) {
sum = 0
for(i = Math.max(0, r - 1); i < Math.min(data.length, r + 2); i++){
for(j = Math.max(0, c - 1); j < Math.min(data[0].length, c + 2); j++){
sum += data[i][j]
}
}
return sum - data[r][c]
}
var assert = require('assert');
if (!global.is_checking) {
assert.equal(countNeighbours([[1, 0, 0, 1, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 1],
[1, 0, 0, 0, 0],
[0, 0, 1, 0, 0]], 1, 2), 3, "1st example");
assert.equal(countNeighbours([[1, 0, 0, 1, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 1],
[1, 0, 0, 0, 0],
[0, 0, 1, 0, 0]], 0, 0), 1, "2nd example");
assert.equal(countNeighbours([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]], 0, 2), 3, "Dense corner");
assert.equal(countNeighbours([[0, 0, 0],
[0, 1, 0],
[0, 0, 0]], 1, 1), 0, "Single");
console.log("Coding complete? Click 'Check' to review your tests and earn cool rewards!");
}
July 7, 2016
Comments: