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)); }