private void testHistorias() { KarelotitlanDB karelotitlan = new KarelotitlanDB(); var usuarios = karelotitlan.historiasUsuarios(); foreach (KeyValuePair <int, List <int> > usuario in usuarios) { txtLog.AppendText(usuario.Key.ToString()); txtLog.AppendText(":"); foreach (int problema in usuario.Value) { txtLog.AppendText(" " + problema.ToString()); } txtLog.AppendText("\r\n"); } }
public void iniciaModelo() { KarelotitlanDB karelotitlan = new KarelotitlanDB(); if (incluyeCero) { historias = karelotitlan.historiasUsuariosIncluido0(); } else { historias = karelotitlan.historiasUsuarios(); } problemas = new Dictionary <int, Problema>(); var problems = karelotitlan.problemas(); foreach (var problem in problems) { problemas[problem.idProblema] = problem; } temas = karelotitlan.temas(); dificultades = karelotitlan.dificultades(); historiasDificultad = new Dictionary <int, Dictionary <int, List <int> > >(); nivelUsuarios = new Dictionary <int, Dictionary <int, List <int> > >(); foreach (var tema in temas) { historiasDificultad[tema.idTema] = new Dictionary <int, List <int> >(); nivelUsuarios[tema.idTema] = new Dictionary <int, List <int> >(); } foreach (KeyValuePair <int, List <int> > usuario in historias) { foreach (var tema in temas) { historiasDificultad[tema.idTema][usuario.Key] = new List <int>(); nivelUsuarios[tema.idTema][usuario.Key] = new List <int>(); } foreach (var idProblema in usuario.Value) { Problema problema = problemas[idProblema]; historiasDificultad[problema.idTema][usuario.Key].Add(problema.dificultad); foreach (var tema in temas) { if (tema.idTema != problema.idTema) { historiasDificultad[tema.idTema][usuario.Key].Add(-1); } } } } foreach (var tema in temas) { foreach (KeyValuePair <int, List <int> > usuario in historiasDificultad[tema.idTema]) { int nivelUsuario = 0; Queue <int> ventana = new Queue <int>(); foreach (int nivel in usuario.Value) { if (nivel > 0) { ventana.Enqueue(nivel); } if (ventana.Count > rango) { ventana.Dequeue(); } nivelUsuario = Math.Max(nivelUsuario, calculaNivel(ventana)); nivelUsuarios[tema.idTema][usuario.Key].Add(nivelUsuario); } } } iniciaProbabilidadNivel(); iniciaProbabilidadResolverProblema(); iniciaProbabilidadInterseccion(); iniciaProbabilidaResolverProblema(); iniciaProbabilidaNivel(); }