UNPKG

boggle-game-solver

Version:

Expansion of node-boggle-solver by adding multiple dictionary options.

28 lines (20 loc) 788 B
const utils = require('./utils') const directions = [[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]]; module.exports= function findAdjacents(position, size, filter = []) { const allDirections = directions.slice(0); const [row, col] = position; return allDirections.reduce((adjacents, direction) => { const [x, y] = direction; const rowSum = (x < 0) ? row - Math.abs(x) : row + x; const colSum = (y < 0) ? col - Math.abs(y) : col + y; const validPosition = (rowSum >= 0 && colSum >= 0); const validSize = (rowSum < size && colSum < size); if (validPosition && validSize) { const adjacent = [rowSum, colSum]; if (!utils.arrayMatch(filter, adjacent)) { adjacents.push(adjacent); } } return adjacents; }, []); }