示例#1
0
        /// <summary>
        ///		Comprueba si está vacía el camino entre una fila y una columna
        /// </summary>
        internal bool IsEmpty(CellModel start, CellModel end)
        {
            int verticalSign = -1 * Math.Sign(start.Row - end.Row);
            int horizontalSign = -1 * Math.Sign(start.Column - end.Column);
            int row, column;

            // Comprueba el recorrido
            row    = start.Row;
            column = start.Column;
            do
            {
                // Comprueba si la celda está ocupada saltándose la primera celda ...
                if ((row != start.Row || column != start.Column) && !Pieces.IsEmpty(new CellModel(row, column)))
                {
                    return(false);
                }
                // Incrementa fila / columna
                row    += verticalSign;
                column += horizontalSign;
            }while (row != end.Row || column != end.Column);
            // Si ha llegado hasta aquí es porque las celdas intermedias estaban vacías
            return(true);
        }