Exemplo n.º 1
0
 /// <summary>
 ///		Comprueba si la pieza se puede mover a una fila / columna
 /// </summary>
 internal override bool CanMoveTo(SquareModel board, int fromRow, int fromColumn, int toRow, int toColumn)
 {
     // Comprueba si puede mover
     if (IsDiagonalMovement(fromRow, fromColumn, toRow, toColumn, false))
     {
         return(board.IsPathEmpty(fromRow, fromColumn, toRow, toColumn) && board.IsLegalMoveTo(this, toRow, toColumn));
     }
     // Devuelve el valor que indica si puede mover
     return(false);
 }
Exemplo n.º 2
0
 /// <summary>
 ///		Comprueba si la pieza se puede mover a una fila / columna
 /// </summary>
 internal override bool CanMoveTo(SquareModel board, int fromRow, int fromColumn, int toRow, int toColumn)
 {
     // Comprueba si es un movimiento horizontal / diagonal
     if (IsVerticalHorizontalMovement(fromRow, fromColumn, toRow, toColumn, false) ||
         IsDiagonalMovement(fromRow, fromColumn, toRow, toColumn, false))
     {
         return(board.IsPathEmpty(fromRow, fromColumn, toRow, toColumn) && board.IsLegalMoveTo(this, toRow, toColumn));
     }
     // Si ha llegado hasta aquí es porque el movimiento no era legal
     return(false);
 }
Exemplo n.º 3
0
        /// <summary>
        ///		Comprueba si la pieza se puede mover a una fila / columna
        /// </summary>
        internal override bool CanMoveTo(SquareModel board, int fromRow, int fromColumn, int toRow, int toColumn)
        {
            int rowDifference    = Math.Abs(fromRow - toRow);
            int columnDifference = Math.Abs(fromColumn - toColumn);

            // Puede moverse si se desplaza dos celdas en una dirección y una en otra
            if ((rowDifference == 2 && columnDifference == 1) ||
                (rowDifference == 1 && columnDifference == 2))
            {
                return(board.IsLegalMoveTo(this, toRow, toColumn));
            }
            // Devuelve el valor que indica que no se puede
            return(false);
        }