ChessDotNet.ChessUtilities.GetOpponentOf C# (CSharp) Method

GetOpponentOf() public static method

public static GetOpponentOf ( Player player ) : Player
player Player
return Player
        public static Player GetOpponentOf(Player player)
        {
            if (player == Player.None)
                throw new ArgumentException("`player` cannot be Player.None.");
            return player == Player.White ? Player.Black : Player.White;
        }
    }

Usage Example

示例#1
0
        GameStatus CalculateStatus(Player playerToValidate, bool validateHasAnyValidMoves)
        {
            if (_drawn)
            {
                return(new GameStatus(GameEvent.Draw, Player.None, _drawReason));
            }
            if (_resigned != Player.None)
            {
                return(new GameStatus(GameEvent.Resign, _resigned, _resigned + " resigned"));
            }

            var other = ChessUtilities.GetOpponentOf(playerToValidate);

            if (IsInCheck(playerToValidate))
            {
                if (validateHasAnyValidMoves && !HasAnyValidMoves(playerToValidate))
                {
                    return(new GameStatus(GameEvent.Checkmate, other, playerToValidate + " is checkmated"));
                }

                return(new GameStatus(GameEvent.Check, other, playerToValidate + " is in check"));
            }

            if (validateHasAnyValidMoves && !HasAnyValidMoves(playerToValidate))
            {
                return(new GameStatus(GameEvent.Stalemate, other, "Stalemate"));
            }

            return(new GameStatus(GameEvent.None, Player.None, "No special event"));
        }
All Usage Examples Of ChessDotNet.ChessUtilities::GetOpponentOf