From b1f29f3d2dc1a11f397c693828f59143226fd442 Mon Sep 17 00:00:00 2001 From: Sorrel Bri Date: Mon, 20 Apr 2020 17:39:52 -0700 Subject: [PATCH] refactor getNeighbors in initBoard for array index lookup instead of boardState.find(...) --- packages/server/services/Game.v2.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/server/services/Game.v2.js b/packages/server/services/Game.v2.js index 9d5ce90..2a75db2 100644 --- a/packages/server/services/Game.v2.js +++ b/packages/server/services/Game.v2.js @@ -85,12 +85,13 @@ const getBoardState = (Game) => { return pipeMap(getLegal)(Game.boardState); } -const getNeighbors = (point, _, boardState) => { +const getNeighbors = boardSize => (point, i, boardState) => { const { top, btm, lft, rgt} = point.neighbors; - point.neighbors.top = top ? boardState.find(val => val[0] === top)[1] : top; - point.neighbors.btm = btm ? boardState.find(val => val[0] === btm)[1] : btm; - point.neighbors.lft = lft ? boardState.find(val => val[0] === lft)[1] : lft; - point.neighbors.rgt = rgt ? boardState.find(val => val[0] === rgt)[1] : rgt; + // boardState[0] = [ '1-1', Point({x:1, y:1, boardSize}) ] + point.neighbors.top = top ? boardState[i - boardSize][1] : top; + point.neighbors.btm = btm ? boardState[i + boardSize][1] : btm; + point.neighbors.lft = lft ? boardState[i - 1][1] : lft; + point.neighbors.rgt = rgt ? boardState[i + 1][1] : rgt; return point; } @@ -109,7 +110,7 @@ const initBoard = ({ boardSize, handicap }) => { boardState[pt].stone = 1; }); } - const boardStateWithNeighbors = pipeMap(getNeighbors)(boardState) + const boardStateWithNeighbors = pipeMap(getNeighbors(boardSize))(boardState) return boardStateWithNeighbors; }