public void insertarCurso(Leccion x) { for (int y = 0; y < 150; y++) { int i = Datos.randy.Next(0, 50); if (validar_Campo(i, x.getBloque(), x)) { this.setLeccion(i, x.getBloque(), x, false); return; } } for (int j = 0; j < Datos.listaAulas.Count; j++) { for (int y = 0; y < 150; y++) { int i = Datos.randy.Next(0, 50); x.setAula(j); if (validar_Campo(i, x.getBloque(), x)) { this.setLeccion(i, x.getBloque(), x, false); return; } } } Console.WriteLine("No se ha podido hallar un espacio disponible para la insercion segura"); Console.ReadKey(); }
public int getEncargado(Leccion x) { if (x == null) { return(-1); } return(this.datocurso[x.getBloque()][x.getCurso()][0]); }
public static Leccion clonar(Leccion origen) { if (origen == null) { return(null); } return(new Leccion(origen.getAula(), origen.getBloque(), origen.getCurso())); }
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 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 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); }
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); }