示例#1
0
文件: Chess.cs 项目: 0gIH04KA/MyChess
        /// <summary>
        ///
        /// проверка возможности следующего хода
        ///
        /// </summary>
        ///
        /// <param name="move">
        ///
        /// строковое представление хода
        ///
        /// </param>
        ///
        /// <returns>
        ///
        /// возвращаем новую доску с текущим ходом
        ///
        /// </returns>
        public Chess Move(string move)
        {
            FigureMoving figureMoving = new FigureMoving(move);

            /// <summary>
            ///
            /// если нельзя совершить указаный ход
            ///
            /// </summary>
            ///
            /// <returns>
            ///
            /// возвращаем текущее расположение шахмат
            ///
            /// </returns>
            if (!_moves.CanMove(figureMoving))
            {
                return(this); //ToDo : add new exception данный ход не возможен!!
            }
            if (_board.IsCheckAfter(figureMoving))
            {
                return(this);//ToDo : add new exception данный ход не возможен, IsCheck!!
            }

            Board nextBoard = _board.Move(figureMoving);
            Chess nextChess = new Chess(nextBoard);

            return(nextChess);
        }
示例#2
0
        public Chess Move(string move)
        {
            if (!IsValidMove(move))
            {
                return(this);
            }
            FigureMoving fm        = new FigureMoving(move);
            Board        nextBoard = board.Move(fm);
            Chess        nextChess = new Chess(nextBoard);

            return(nextChess);
        }
示例#3
0
        public Chess Move(string move)
        {
            var fm = new FigureMoving(move);

            if (!IsValidMove(fm))
            {
                return(this);
            }

            var nextBoard = Board.Move(fm);

            return(new Chess(nextBoard));
        }
示例#4
0
        public Chess Move(string move) // Pe2e4        Pe7e8Q
        {
            FigureMoving fm = new FigureMoving(move);

            if (!moves.CanMove(fm))
            {
                return(this);
            }
            if (board.IsCheckAfterMove(fm))
            {
                return(this);
            }
            Board nextBoard = board.Move(fm);
            Chess nextChess = new Chess(nextBoard);

            return(nextChess);
        }
示例#5
0
        // Принимает ход в виде Pe2e4   Pe7e8Q
        public Chess Move(string move)
        {
            FigureMoving fm = new FigureMoving(move);

            // Если нельзя сделать ход..
            if (!moves.CanMove(fm))
            {
                return(this);
            }
            if (board.IsCheckAfterMove(fm))
            {
                return(this);
            }
            Board nextBoard = board.Move(fm);
            Chess nextChess = new Chess(nextBoard);

            return(nextChess);
        }
示例#6
0
        public Chess Move(string move)
        {
            if (!isValidMove(move))
            {
                return(this);
            }

            FigureMoving fm = new FigureMoving(move);

            if (!moves.CanMove(fm))
            {
                return(this);
            }

            if (board.IsCheckAfter(fm))
            {
                return(this);
            }
            Board nextBoard = board.Move(fm);
            Chess nextChess = new Chess(nextBoard);

            return(nextChess);
        }