Example #1
0
        public bool ExecuteMove(MyChessEngineBase.Move move)
        {
            Board.ExecuteMove(new Move(move));

            ColorToMove = ChessEngineConstants.NextColorToMove(ColorToMove);

            return(true);
        }
Example #2
0
        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);
        }
Example #3
0
 public ChessEngine2 Copy()
 {
     return(new ChessEngine2(Board.Copy(), ChessEngineConstants.NextColorToMove(ColorToMove)));
 }