Example #1
0
        public bool IsFirstPlayerWon()
        {
            int firstPlayerPointsCount  = BoardHandler.CountPoints(firstPlayerColor, board.Points);
            int secondPlayerPointsCount = BoardHandler.CountPoints(secondPlayerColor, board.Points);

            return(firstPlayerPointsCount < secondPlayerPointsCount);
        }
Example #2
0
        public void FinishGame(List <List <Point> > points)
        {
            int firstPlayerPointsCount  = BoardHandler.CountPoints(firstPlayerColor, points);
            int secondPlayerPointsCount = BoardHandler.CountPoints(secondPlayerColor, points);

            GameFinished?.Invoke(firstPlayerPointsCount, secondPlayerPointsCount);
        }
Example #3
0
        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);
        }
Example #4
0
 public bool IsGameFinished()
 {
     return(BoardHandler.isFull(board.Points) || passedMovesCount == 2);
 }
Example #5
0
        public List <Tuple <int, int> > GetAvailablePoints()
        {
            var availablePoints = BoardHandler.GetAvailablePoints(currentPlayerColor, board.Points);

            return(availablePoints);
        }
Example #6
0
 public void CalculatePlayersScore(List <List <Point> > points)
 {
     ScoresCalculated?.Invoke(BoardHandler.CountPoints(firstPlayerColor, points), BoardHandler.CountPoints(secondPlayerColor, points));
 }