/// <summary> /// Este método se utiliza para obtener los nombres de la Categoría y la Dificultad /// correspondientes a la sesión. /// </summary> /// <returns></returns> public NombresDatos ObtenerNombres() { NombresDatos nombresDatos = new NombresDatos(); if (Preguntas.Count > 0) { Pregunta pregunta = Preguntas.First(); nombresDatos.Categoria = pregunta.Categoria.Nombre; nombresDatos.Dificultad = pregunta.Dificultad.Nombre; } return(nombresDatos); }
public SesionForm(int pSesionId) { InitializeComponent(); Sesion sesionActual = fachada.ObtenerSesion(pSesionId); NombresDatos nombresDatos = sesionActual.ObtenerNombres(); lblCategoria.Text = nombresDatos.Categoria; lblDificultad.Text = nombresDatos.Dificultad; idSesionActual = pSesionId; lblRespuestasActuales.Text = (sesionActual.CantidadTotalPreguntas - sesionActual.Preguntas.Count).ToString(); lblRespuestasTotales.Text = sesionActual.CantidadTotalPreguntas.ToString(); LoadFont(); SiguientePregunta(); }
public override double CalcularPuntaje(Sesion pSesion) { int TIEMPO_LIMITE_1 = 5; int TIEMPO_LIMITE_2 = 20; double FACTOR_DIFICULTAD = 1; NombresDatos nombresDatos = pSesion.ObtenerNombres(); switch (nombresDatos.Dificultad) { case "hard": FACTOR_DIFICULTAD = 5; break; case "medium": FACTOR_DIFICULTAD = 3; break; case "easy": FACTOR_DIFICULTAD = 1; break; } double FACTOR_TIEMPO = 1; double tiempoPorPregunta = pSesion.SegundosTranscurridos / pSesion.CantidadTotalPreguntas; if (tiempoPorPregunta < TIEMPO_LIMITE_1) { FACTOR_TIEMPO = 5; } if (tiempoPorPregunta > TIEMPO_LIMITE_2) { FACTOR_TIEMPO = 1; } if (tiempoPorPregunta >= TIEMPO_LIMITE_1 && tiempoPorPregunta <= TIEMPO_LIMITE_2) { FACTOR_TIEMPO = 3; } double puntaje = ((double)pSesion.RespuestasCorrectas / (double)pSesion.CantidadTotalPreguntas) * FACTOR_DIFICULTAD * FACTOR_TIEMPO; return(Math.Round(puntaje, 2)); }