UNPKG

eassy-tictactoe

Version:
42 lines (38 loc) 1.21 kB
'use strict'; const patterns = require('../constants/patterns'); const { diffArray, compareArray } = require('../utils/arrayUtils'); const { Isnumeric, noDuplicateMoves } = require('../utils/validateArray'); function play(playOneMoves, playTwoMoves) { let pattern = []; let winner = ""; const IsnumberCheck = Isnumeric(playOneMoves.concat(playTwoMoves)); const duplicateCheck = noDuplicateMoves(playOneMoves, playTwoMoves); if(IsnumberCheck && duplicateCheck) { for (pattern of patterns) { if(diffArray(pattern, playOneMoves).length === 3) { winner = "player one wins"; break; } if(diffArray(pattern, playTwoMoves).length === 3) { winner = "player two wins"; break; } } if(!winner) { if(playOneMoves.concat(playTwoMoves).length === 9) { winner = "draw"; } else if(!winner && (playOneMoves.length === (playTwoMoves.length + 1))) { winner = "player two's turn"; } else { winner = "player one's turn" } } } else { throw Error("Invalid entry"); } return winner; } exports.multiplayer = function (playerOne, playerTwo) { return play(playerOne, playerTwo); }