예제 #1
0
 //este método recibe como parámetro un rendimiento, buscará dentro de los rendimientos que ya tiene almacenados, tomando 2 reglas principales:
 //1) si todavía no hay 10 rendimientos almacenados, directamente lo almacena
 //2) si ya hay 10 rendimientos almacenados se fija si el rendimiento recibido es mejor al peor de los rendimientos almacenados, si es mejor lo almacena.
 public bool AlmacenarSiCorresponde(Rendimiento rendimientoNuevo)
 {
     if (rendimientos.Count < 10)
     {
         rendimientos.Add(rendimientoNuevo);
         ordenarLosRendimientos();
         return(true);
     }
     else
     {
         Rendimiento peorRendimiento = obtenerPeorRendimiento(rendimientos);
         if ((rendimientoNuevo.tiempo < peorRendimiento.tiempo) || (rendimientoNuevo.tiempo == peorRendimiento.tiempo && rendimientoNuevo.errores < peorRendimiento.errores))
         {
             //borro el rendimiento menor
             rendimientos.Remove(peorRendimiento);
             rendimientos.Add(rendimientoNuevo);
             ordenarLosRendimientos();
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
예제 #2
0
    public void ordenarLosRendimientos()
    {
        var copiaRendimientos = (rendimientos as IEnumerable <Rendimiento>).ToList();
        List <Rendimiento> rendimientosOrdenados = new List <Rendimiento>();

        while (copiaRendimientos.Count > 0)
        {
            Rendimiento mejorRendimiento = obtenerMejorRendimiento(copiaRendimientos);
            rendimientosOrdenados.Add(mejorRendimiento);
            copiaRendimientos.Remove(mejorRendimiento);
        }
        rendimientos = rendimientosOrdenados;
    }
예제 #3
0
    //este método intentará almacenar el rendimiento actual, en realidad  la clase DatosRendimientos tomará la decisión de almacenarlo si es uno de los 10 mejores tiempos del jugador para el nivel actual
    void almacenarElRendimientoActual()
    {
        Debug.Log("ejecutando almacenamiento Actual");

        Rendimiento rendimiento = new Rendimiento();

        rendimiento.tiempo  = totalTiempo;
        rendimiento.errores = totalErrores;
        //datosRendimientos.rendimientos.Add(rendimiento);
        if (datosRendimientos.AlmacenarSiCorresponde(rendimiento))
        {
            //si me devolvió verdadero significa que es un rendimiento que se almacenó, por eso lo guardo en la estructura de objetos que almacena todos los datos del juego*/
            datosJuego.jugadorActual.rendimientosNiveles[(int)datosJuego.jugadorActual.modoActual][datosJuego.jugadorActual.nivelActual] = datosRendimientos;
            lblRendimientoAlmacenado.enabled = true;
        }
        Debug.Log("Rendimientos=" + datosRendimientos.rendimientos.Count.ToString());
    }
예제 #4
0
    private Rendimiento obtenerMejorRendimiento(List <Rendimiento> rendimientosAnalizados)
    {
        Rendimiento mejorRendimiento = null;

        foreach (Rendimiento rendimiento in rendimientosAnalizados)
        {
            if (mejorRendimiento == null)
            {
                mejorRendimiento = rendimiento;
            }
            else
            {
                if ((rendimiento.tiempo < mejorRendimiento.tiempo) || (rendimiento.tiempo == mejorRendimiento.tiempo && rendimiento.errores < mejorRendimiento.errores))
                {
                    mejorRendimiento = rendimiento;
                }
            }
        }
        return(mejorRendimiento);
    }
예제 #5
0
    //obtengo el peor rendimiento, es decir, con mayor tiempo y si hay 2 rendimientos con el mismo tiempo obtengo el que tenga más errores
    private Rendimiento obtenerPeorRendimiento(List <Rendimiento> rendimientosAnalizados)
    {
        Rendimiento peorRendimiento = null;

        foreach (Rendimiento rendimiento in rendimientosAnalizados)
        {
            if (peorRendimiento == null)
            {
                peorRendimiento = rendimiento;
            }
            else
            {
                if ((rendimiento.tiempo > peorRendimiento.tiempo) || (rendimiento.tiempo == peorRendimiento.tiempo && rendimiento.errores > peorRendimiento.errores))
                {
                    peorRendimiento = rendimiento;
                }
            }
        }
        return(peorRendimiento);
    }