private bool availableTokenPlacementDiagonalFromUpToDownFromRightToLeft(byte i_ChosenRow, byte i_ChosenColumn) { bool availableTokenPlacement = false; if (i_ChosenRow < GameBoardSize - 2 && i_ChosenColumn > 1) { eGameToken oneSquareLeftDown = this.GameStatus[i_ChosenRow + 1, i_ChosenColumn - 1]; if (oneSquareLeftDown == this.getOppositeCurrentPlayerToken()) { int i = i_ChosenRow + 1; int j = i_ChosenColumn - 1; while ((i < GameBoardSize) && (j >= 0) && (this.GameStatus[i, j] != eGameToken.Empty)) { if (this.GameStatus[i, j] == this.GetCurrentPlayerToken()) { availableTokenPlacement = true; } ++i; --j; } } } return(availableTokenPlacement); }
private bool availableTokenPlacementDiagonalFromDownToUpFromRightToLeft(byte i_ChosenRow, byte i_ChosenColumn) { bool availableTokenPlacement = false; if (i_ChosenRow > 1 && i_ChosenColumn > 1) { eGameToken oneSquareLeftUp = this.GameStatus[i_ChosenRow - 1, i_ChosenColumn - 1]; if (oneSquareLeftUp == this.getOppositeCurrentPlayerToken()) { int i = i_ChosenRow - 1; int j = i_ChosenColumn - 1; while ((i >= 0) && (j >= 0) && (this.GameStatus[i, j] != eGameToken.Empty)) { if (this.GameStatus[i, j] == this.GetCurrentPlayerToken()) { availableTokenPlacement = true; } --i; --j; } } } return(availableTokenPlacement); }
internal eGameToken GetCurrentPlayerToken() { eGameToken currentToken = eGameToken.BlackToken; if (m_Turn == eCurrentTurn.WhiteOpponentTurn) { currentToken = eGameToken.WhiteToken; } return(currentToken); }
internal bool IsComputerTurn() { bool isComputerTurn = false; if (m_CompOpponent != null) { eGameToken compToken = m_CompOpponent.ComputerToken; if (compToken == GetCurrentPlayerToken()) { isComputerTurn = true; } } return(isComputerTurn); }
internal byte GetPlayerScore(eGameToken i_Token) { byte playerScore = 0; if (i_Token == eGameToken.WhiteToken) { playerScore = m_humanFirstOpponent.PlayerScore; } else { if (m_CompOpponent == null) { playerScore = m_humanSecondOpponent.PlayerScore; } else { playerScore = m_CompOpponent.PlayerScore; } } return(playerScore); }
internal bool IsLegalMovement(byte i_ChosenRow, byte i_ChosenColumn) { bool isBlockerTokenExist = false; eGameToken currentSquare = GameStatus[i_ChosenRow, i_ChosenColumn]; if (currentSquare == eGameToken.Empty) { if (availableTokenPlacementFromDownToUp(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementFromUpToDown(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementFromLeftToRight(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementFromRightToLeft(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementDiagonalFromDownToUpFromLeftToRight(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementDiagonalFromDownToUpFromRightToLeft(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementDiagonalFromUpToDownFromLeftToRight(i_ChosenRow, i_ChosenColumn) || availableTokenPlacementDiagonalFromUpToDownFromRightToLeft(i_ChosenRow, i_ChosenColumn)) { isBlockerTokenExist = true; } } return(isBlockerTokenExist); }
private bool availableTokenPlacementFromRightToLeft(byte i_ChosenRow, byte i_ChosenColumn) { bool availablePlaceFromDown = false; if (i_ChosenColumn > 1) { eGameToken oneSquareLeft = this.GameStatus[i_ChosenRow, i_ChosenColumn - 1]; if (oneSquareLeft == this.getOppositeCurrentPlayerToken()) { int i = i_ChosenColumn - 1; while ((i >= 0) && (this.GameStatus[i_ChosenRow, i] != eGameToken.Empty)) { if (this.GameStatus[i_ChosenRow, i] == this.GetCurrentPlayerToken()) { availablePlaceFromDown = true; } --i; } } } return(availablePlaceFromDown); }
private bool availableTokenPlacementFromLeftToRight(byte i_ChosenRow, byte i_ChosenColumn) { bool availablePlaceFromDown = false; if (i_ChosenColumn < GameBoardSize - 2) { eGameToken oneSquareRight = this.GameStatus[i_ChosenRow, i_ChosenColumn + 1]; if (oneSquareRight == this.getOppositeCurrentPlayerToken()) { int i = i_ChosenColumn + 1; while ((i < GameBoardSize) && (this.GameStatus[i_ChosenRow, i] != eGameToken.Empty)) { if (this.GameStatus[i_ChosenRow, i] == this.GetCurrentPlayerToken()) { availablePlaceFromDown = true; } ++i; } } } return(availablePlaceFromDown); }
private eGameToken getOppositeCurrentPlayerToken() { eGameToken currentToken = this.GetCurrentPlayerToken(); return((currentToken == eGameToken.BlackToken) ? eGameToken.WhiteToken : eGameToken.BlackToken); }