public ApplyMove ( Move move, bool alreadyValidated ) : MoveType | ||
move | Move | |
alreadyValidated | bool | |
리턴 | MoveType |
protected virtual bool WouldBeSuicide(Move move, Player player) { ChessUtilities.ThrowIfNull(move, nameof(move)); var copy = new AtomicChessGame(Board, player); copy.ApplyMove(move, true); bool ownKingIsGone = copy.KingIsGone(player); if (ownKingIsGone) { return(true); } else { return(false); } }
protected virtual bool WouldBeSuicideOrInvalidSelfMoveInCheck(Move move, Player player) { ChessUtilities.ThrowIfNull(move, nameof(move)); var copy = new AtomicChessGame(Board, player); copy.ApplyMove(move, true); bool ownKingIsGone = copy.KingIsGone(player); bool otherKingIsGone = copy.KingIsGone(ChessUtilities.GetOpponentOf(player)); if (ownKingIsGone) { return(true); } else if (otherKingIsGone) { return(false); } else { return(copy.IsInCheck(player)); } }
protected virtual bool WouldBeSuicideOrInvalidSelfMoveInCheck(Move move, Player player) { ChessUtilities.ThrowIfNull(move, "move"); AtomicChessGame copy = new AtomicChessGame(Board, player); copy.ApplyMove(move, true); bool ownKingIsGone = copy.KingIsGone(player); bool otherKingIsGone = copy.KingIsGone(ChessUtilities.GetOpponentOf(player)); if (ownKingIsGone) { return true; } else if (otherKingIsGone) { return false; } else { return copy.IsInCheck(player); } }
protected virtual bool WouldBeSuicide(Move move, Player player) { ChessUtilities.ThrowIfNull(move, "move"); AtomicChessGame copy = new AtomicChessGame(Board, player); copy.ApplyMove(move, true); bool ownKingIsGone = copy.KingIsGone(player); if (ownKingIsGone) { return true; } else { return false; } }