public bool validar_Campo(int hora, int bloque, Leccion nueva)
        {
            if (nueva == null)
            {
                return(validar_bloque(hora, bloque));
            }
            if (nueva.getAula() == 1 && 9 >= hora && hora >= 5)
            {
            }

            if (validar_bloque(hora, bloque) && validar_aula(hora, nueva.getAula()) && validar_profesor(hora, bloque, nueva.getCurso()))
            {
                return(true);
            }
            return(false);
        }
 public static Leccion clonar(Leccion origen)
 {
     if (origen == null)
     {
         return(null);
     }
     return(new Leccion(origen.getAula(), origen.getBloque(), origen.getCurso()));
 }
예제 #3
0
 public bool validar_Campo(int hora, Leccion nueva)
 {
     if (this.aulas[hora, nueva.getAula()] != null || this.bloques[hora, nueva.getBloque()] != null || this.profesores[hora, this.encargados[nueva.getBloque()][nueva.getCurso()]] != null)
     {
         return(false);
     }
     return(true);
 }
        public Leccion popLeccion(int bloque, int hora)
        {
            Leccion valor = this.bloques[hora, bloque];

            if (valor != null)
            {
                this.bloques[hora, bloque]        = null;
                this.aulas[hora, valor.getAula()] = null;
                this.profesores[hora, this.getEncargado(valor)] = null;
                this.datocurso[bloque][valor.getCurso()][1]--;
            }
            return(valor);
        }
        public void insertarCurso(int bloque, int curso)
        {
            int     hora  = Datos.randy.Next(0, 50);
            Leccion nueva = new Leccion(Datos.randy.Next(0, Datos.listaAulas.Count), bloque, curso);

            while (!validar_Campo(hora, bloque, nueva))
            {
                nueva.setAula(Datos.randy.Next(0, Datos.listaAulas.Count));
                hora = Datos.randy.Next(0, 50);
            }
            this.aulas[hora, nueva.getAula()] = nueva;
            this.bloques[hora, bloque]        = nueva;
            this.profesores[hora, datocurso[bloque][curso][0]] = nueva;
        }
예제 #6
0
        public Leccion cambiar(Leccion nueva, int hora)
        {
            Leccion        retorno    = this.aulas[hora, nueva.getAula()];
            List <Leccion> contenedor = new List <Leccion>();
            int            t          = Datos.listaCursos[nueva.getBloque()][nueva.getCurso()].getLecciones();

            for (int i = 0; i < 50 || contenedor.Count < t; i++)
            {
                if (this.bloques[i, nueva.getBloque()].getCurso() == nueva.getCurso())
                {
                    contenedor.Add(this.bloques[i, nueva.getBloque()]);
                }
            }
            Leccion escogida = contenedor[Datos.randy.Next(0, contenedor.Count())];

            this.aulas[hora, escogida.getAula()]     = null;
            this.bloques[hora, escogida.getBloque()] = null;
            this.profesores[hora, this.encargados[escogida.getBloque()][escogida.getCurso()]] = null;
            this.aulas[hora, nueva.getAula()]     = nueva;
            this.bloques[hora, nueva.getBloque()] = nueva;
            this.profesores[hora, this.encargados[nueva.getBloque()][nueva.getCurso()]] = nueva;
            return(retorno);
        }
 public bool setLeccion(int hora, int bloque, Leccion valor, bool clonado)
 {
     if (validar_Campo(hora, bloque, valor))
     {
         if (valor != null)
         {
             this.bloques[hora, valor.getBloque()] = valor;
             this.aulas[hora, valor.getAula()]     = valor;
             this.profesores[hora, this.datocurso[bloque][valor.getCurso()][0]] = valor;
             if (!clonado)
             {
                 this.datocurso[bloque][valor.getCurso()][1]++;
             }
         }
         return(true);
     }
     return(false);
 }
예제 #8
0
        public void cambiar_Aula(int hora, int aula, int pareja)
        {
            Leccion objetivo = this.aulas[hora, aula];

            if (Datos.listaHorariosPadres[pareja].validar_Campo(hora, this.aulas[hora, this.aulas[hora, aula].getAula()]))
            {
                Leccion nuevo = Datos.listaHorariosPadres[pareja].cambiar(objetivo, hora);
                if (this.validar_Campo(hora, nuevo))
                {
                    this.aulas[hora, nuevo.getAula()]     = nuevo;
                    this.bloques[hora, nuevo.getBloque()] = nuevo;
                    this.profesores[hora, this.encargados[nuevo.getBloque()][nuevo.getCurso()]] = nuevo;
                }
                else
                {
                    Datos.listaHorariosPadres[pareja].cambiar(nuevo, hora);
                }
            }
        }
        public bool insertarFuerte(int hora, int bloque, Leccion x, int inicio, int fin)
        {
            Leccion aux;
            int     auxh;

            if (x == null)
            {
                if (!validar_bloque(hora, bloque))
                {
                    aux  = getLeccion_bloque(hora, bloque);
                    auxh = getHoraDisponible(bloque, aux, inicio, fin);
                    popLeccion(bloque, hora);
                    if (auxh == -1)
                    {
                        return(false);
                    }
                    if (!setLeccion(auxh, bloque, aux, false))
                    {
                        return(false);
                    }
                }
            }
            else
            {
                if (!validar_Campo(hora, bloque, x))
                {
                    if (!Datos.listaProfesores[getEncargado(x)].horavalida(hora) || !Datos.listaAulas[x.getAula()].horavalida(hora))
                    {
                        return(false);
                    }
                    else
                    {
                        if (!validar_bloque(hora, bloque))
                        {
                            aux  = getLeccion_bloque(hora, bloque);
                            auxh = getHoraDisponible(bloque, aux, inicio, fin);
                            if (auxh == -1)
                            {
                                return(false);
                            }
                            popLeccion(bloque, hora);
                            if (!setLeccion(auxh, bloque, aux, false))
                            {
                            }
                        }

                        if (!validar_profesor(hora, x.getBloque(), x.getCurso()))
                        {
                            aux  = getLeccion_bloque(hora, getLeccion_profesor(hora, getEncargado(x)).getBloque());
                            auxh = getHoraDisponible(aux.getBloque(), aux, inicio, fin);
                            if (auxh == -1)
                            {
                                return(false);
                            }
                            popLeccion(aux.getBloque(), hora);
                            if (!setLeccion(auxh, aux.getBloque(), aux, false))
                            {
                            }
                        }

                        if (!validar_aula(hora, x.getAula()))
                        {
                            aux  = getLeccion_bloque(hora, getLeccion_aula(hora, x.getAula()).getBloque());
                            auxh = getHoraDisponible(aux.getBloque(), aux, inicio, fin);
                            if (auxh == -1)
                            {
                                return(false);
                            }
                            popLeccion(aux.getBloque(), hora);
                            if (!setLeccion(auxh, aux.getBloque(), aux, false))
                            {
                            }
                        }
                        if (!setLeccion(hora, bloque, x, false))
                        {
                            return(false);
                        }
                    }
                }
                else
                {
                    setLeccion(hora, bloque, x, false);
                }
            }
            return(true);
        }