private void CheckFirstPlayerCorrect(PlayerSign playerSign) { if (_moves.Count == 0 && playerSign == PlayerSign.Nought) { throw new Exception("Nought cannot take the first move"); } }
private bool CheckWinLines(PlayerSign playerSign) { return(GameWinOptions.Lines.Select(winLine => GetPlayerSignOnBoardPosition(winLine[0]) == playerSign && GetPlayerSignOnBoardPosition(winLine[1]) == playerSign && GetPlayerSignOnBoardPosition(winLine[2]) == playerSign) .Any(hasWin => hasWin)); }
public Move(BoardPosition position, PlayerSign playerSign) { Position = position; PlayerSign = playerSign; }
public void AddMoveToBoard(Move move) { ValidateMove(move); _moves.Add(move); LastPlayed = move.PlayerSign; }