public bool IsFirstPlayerWon() { int firstPlayerPointsCount = BoardHandler.CountPoints(firstPlayerColor, board.Points); int secondPlayerPointsCount = BoardHandler.CountPoints(secondPlayerColor, board.Points); return(firstPlayerPointsCount < secondPlayerPointsCount); }
public void FinishGame(List <List <Point> > points) { int firstPlayerPointsCount = BoardHandler.CountPoints(firstPlayerColor, points); int secondPlayerPointsCount = BoardHandler.CountPoints(secondPlayerColor, points); GameFinished?.Invoke(firstPlayerPointsCount, secondPlayerPointsCount); }
public void MakeMove(Tuple <int, int> coolds) { if (GetAvailablePoints().Count == 0) { Pass(); } else { passedMovesCount = 0; } List <List <Point> > points = BoardHandler.SetPoint(currentPlayerColor, coolds, board.Points); MoveMade?.Invoke(points); SwapTurn(); AvailablePointsCalculated?.Invoke(GetAvailablePoints()); CalculatePlayersScore(points); if (BoardHandler.isFull(points) || passedMovesCount == 2) { FinishGame(points); return; } board = new Board(points); }
public bool IsGameFinished() { return(BoardHandler.isFull(board.Points) || passedMovesCount == 2); }
public List <Tuple <int, int> > GetAvailablePoints() { var availablePoints = BoardHandler.GetAvailablePoints(currentPlayerColor, board.Points); return(availablePoints); }
public void CalculatePlayersScore(List <List <Point> > points) { ScoresCalculated?.Invoke(BoardHandler.CountPoints(firstPlayerColor, points), BoardHandler.CountPoints(secondPlayerColor, points)); }