示例#1
0
        /// <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);
        }
示例#2
0
        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();
        }
示例#3
0
        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));
        }