private void calculatePoints(Board i_PlayingBoard) { PossibleMoves allPossibleMoves = new PossibleMoves(i_PlayingBoard); ArrayList firstPlayerPossibleMoves = allPossibleMoves.FirstPlayerPossibleMoves; ArrayList secondPlayerPossibleMoves = allPossibleMoves.SecondPlayerPossibleMoves; int totalMovesFirstPlayer = firstPlayerPossibleMoves.Count; int totalMovesSecondPlayer = secondPlayerPossibleMoves.Count; this.m_FirstPlayerCurrentPoints = calcUserPoints(m_FirstPlayer, i_PlayingBoard); this.m_SecondPlayerCurrentPoints = calcUserPoints(m_SecondPlayer, i_PlayingBoard); if (totalMovesFirstPlayer == 0 && totalMovesSecondPlayer == 0) { m_WinnerIsFound = true; } else if (totalMovesFirstPlayer == 0) { m_WinnerIsFound = true; } else if (totalMovesSecondPlayer == 0) { m_WinnerIsFound = true; } else { ArrayList firstUserCoins = i_PlayingBoard.GetUserCoins(this.m_FirstPlayer.CoinType); ArrayList secondUserCoins = i_PlayingBoard.GetUserCoins(this.m_SecondPlayer.CoinType); if (firstUserCoins.Count == 0) { m_WinnerIsFound = true; } else if (secondUserCoins.Count == 0) { m_WinnerIsFound = true; } } if (m_WinnerIsFound) { SetWinner(); } }
private int calcUserPoints(Player i_CurrentPlayer, Board i_Board) { int totalPoints = 0; ArrayList firstUserCoins = i_Board.GetUserCoins(i_CurrentPlayer.CoinType); foreach (Coin coin in firstUserCoins) { totalPoints += coin.IsKing ? 4 : 1; } return(totalPoints); }