none
Herencia en niveles de jueg RRS feed

  • Pregunta

  • Tengo una Clase que es juego simple. Que crea y hace jugar fichas de un tipo. Una clase de juego intermedio que hereda de esta y otra de juego avanzado que hereda de la ultima. En cada una se agregan tipos de fichas distintos correspondientes al nivel. Y la clase se encarga de hacer jugar todas las fichas. Como hago para implementar desde afuera y tener control sobre esas fichas. Si creo un objeto de tipo juego simple e intento castearlo a intermedio no me funciona. Si quiero poner jugar de nuevo pierdo el avance de las fichas y sus propiedades. En las fichas tengo el control de sus victorias y jugadas. Como hago para no perder esos datos? Debería crear un arraylist para guardar esas fichas y al crear otro objeto de tipo juego me almacene todo ahí para no perder los datos? Soy nuevo en programación. Agradezco sus sugerencias y si no se entendió algo lo vuelvo a explicar . Saludos

    jueves, 13 de octubre de 2016 12:48

Respuestas

  • hola

    Hubiera ayudado si ponias algo de codigo de la estructura de clases que explicas

    entiendo que tienes algo como esto

    public class Ficha{
    
    }
    
    public class JuegoSimple<T> where T: Ficha{
    
    }
    
    public class JuegoIntermedio<T> : JuegoSimple<T> {
    
    }
    
    public class JuegoAvanzado<T> : JuegoIntermedio<T> {
    
    }

    >>Si creo un objeto de tipo juego simple e intento castearlo a intermedio no me funciona.

    claro eso no puedes hacerlo

    Herencia y clases derivadas

    pero si al contrario, puedes castear a la clase base, analiza el titulo "Convertir un tipo a una clase base"

    >>Si quiero poner jugar de nuevo pierdo el avance de las fichas y sus propiedades

    pero estas cambiando la dificultad del juego, por la herencia podrias ir de un juego avanzado a uno simple, peor no al contrario

    >>Debería crear un arraylist para guardar esas fichas y al crear otro objeto de tipo juego me almacene todo ahí para no perder los datos?

    claro, vas a necesitar un medio separado que guarde el estado del avance y vuelque los datos a la nueva dificultad

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP viernes, 14 de octubre de 2016 2:48
    • Marcado como respuesta SvarOg_4 sábado, 15 de octubre de 2016 12:33
    viernes, 14 de octubre de 2016 2:47

Todas las respuestas

  • hola

    Hubiera ayudado si ponias algo de codigo de la estructura de clases que explicas

    entiendo que tienes algo como esto

    public class Ficha{
    
    }
    
    public class JuegoSimple<T> where T: Ficha{
    
    }
    
    public class JuegoIntermedio<T> : JuegoSimple<T> {
    
    }
    
    public class JuegoAvanzado<T> : JuegoIntermedio<T> {
    
    }

    >>Si creo un objeto de tipo juego simple e intento castearlo a intermedio no me funciona.

    claro eso no puedes hacerlo

    Herencia y clases derivadas

    pero si al contrario, puedes castear a la clase base, analiza el titulo "Convertir un tipo a una clase base"

    >>Si quiero poner jugar de nuevo pierdo el avance de las fichas y sus propiedades

    pero estas cambiando la dificultad del juego, por la herencia podrias ir de un juego avanzado a uno simple, peor no al contrario

    >>Debería crear un arraylist para guardar esas fichas y al crear otro objeto de tipo juego me almacene todo ahí para no perder los datos?

    claro, vas a necesitar un medio separado que guarde el estado del avance y vuelque los datos a la nueva dificultad

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP viernes, 14 de octubre de 2016 2:48
    • Marcado como respuesta SvarOg_4 sábado, 15 de octubre de 2016 12:33
    viernes, 14 de octubre de 2016 2:47
  • Muchas Gracias Leandro. Es lo que me supuse y lo solucione así mismo. Gracias por la información, profundizaré más en eso. Saludos!
    sábado, 15 de octubre de 2016 12:35