Esempio n. 1
0
        private void IncrementarBloque(int posicion, int delta)
        {
            if (!_bloques.SinAsignar())
            {
                int suma = 0;
                for (int i = 0; i < _bloques.Cantidad; i++)
                {
                    Bloque b = _bloques.Obtener(i);
                    suma += b.Cantidad;
                    if (suma >= posicion)//||(_bloques[i].Cantidad==0&&suma==posicion))
                    {
                        int inc = i + 1;
                        while (inc < _bloques.Cantidad && _bloques.Obtener(inc).Cantidad == 0)
                        {
                            inc++;
                        }
                        inc = inc - 1;
                        Bloque bc = _bloques.Obtener(inc);
                        bc.IncrementarCantidad(delta);
                        _bloques.Guardar(inc, bc);
#if DEBUG
                        Verificar();
#endif
                        return;
                    }
                }
                Bloque bd = _bloques.Obtener(_bloques.Cantidad - 1);
                bd.IncrementarCantidad(delta);
                _bloques.Guardar(_bloques.Cantidad - 1, bd);
#if DEBUG
                Verificar();
#endif
            }
        }
Esempio n. 2
0
        private void ExtenderBloques(int delta)
        {
            if (!_bloques.SinAsignar())
            {
                Bloque b = _bloques.Obtener(_bloques.Cantidad - 1);
                b.IncrementarCantidad(delta);
                _bloques.Guardar(_bloques.Cantidad - 1, b);

#if DEBUG
                Verificar();
#endif
            }
        }