public bool ExecuteMove(MyChessEngineBase.Move move) { Board.ExecuteMove(new Move(move)); ColorToMove = ChessEngineConstants.NextColorToMove(ColorToMove); return(true); }
public bool IsChecked() { if (!_IsCheckedCalculated) { var l = Board.GetAllPieces(ChessEngineConstants.NextColorToMove(Color)) .Select((piece => piece.GetThreatenMoveList().Moves)) .SelectMany(move => move); var threatenedFields = l.Select(move => move.End); _IsChecked = threatenedFields.Any(position => position.AreEqual(Position)); _IsCheckedCalculated = true; } return(_IsChecked); }
public ChessEngine2 Copy() { return(new ChessEngine2(Board.Copy(), ChessEngineConstants.NextColorToMove(ColorToMove))); }