• Martes 12 de Noviembre de 2024, 21:13

Autor Tema:  Modelo De Clases  (Leído 2784 veces)

Can3lita

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Modelo De Clases
« en: Lunes 6 de Junio de 2005, 15:51 »
0
HoLa, alguien tiene el modelo de clases que se usa en el juego japonés SOKOBAN???

Quisiera saber las clases, sus métodos y atributos...

Esperando respuestas, adeus!
[/color][/size]

Can3lita

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Modelo De Clases
« Respuesta #1 en: Lunes 6 de Junio de 2005, 16:00 »
0
:o Acabo de leer el artículo Cómo hacer preguntas de forma inteligente... y oops, me siento eh...
Bueno, según el artículo entonces, sólo espero que me den pistas. Esto es una tarea pero tampoco no pretendo que me las resuelvan  :unsure: ni mucho menos...
Por ej., estuve analizando y creí que el muñequito quien mueve las cajas o bloques no llega a ser una clase porque en realidad no tiene sus propios atributos  :o  Para mí es algo confuso esto de encontrar las clases y por eso les pido ayuda...  B)
[/size]

fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Modelo De Clases
« Respuesta #2 en: Lunes 6 de Junio de 2005, 19:18 »
0
Hola que tal.

Revisa esta página, creo que te será de mucha utilidad.

http://sourceforge.net/projects/jsokoban/

Hasta luego.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Modelo De Clases
« Respuesta #3 en: Lunes 6 de Junio de 2005, 20:44 »
0
aquí se toca algo del tema aunque no es puntualmente lo que dices,
como adelanto el personaje si debe ser una clase.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Can3lita

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Modelo De Clases
« Respuesta #4 en: Martes 7 de Junio de 2005, 05:41 »
0
A ver ingeniero, no lo creo, fundamente su respuesta. [/color][/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Modelo De Clases
« Respuesta #5 en: Martes 7 de Junio de 2005, 07:20 »
0
Te la has arreglado para hacerme 'hablar'...

Bueno esto seria un primer borrador, nunca he hecho un juego de SokoBan así que logicamente puede estar incompleto o sobredimensionado.
también depende de como, con que, que calidad, que habilidad tengas en este momento y  hasta donde lo quieras hacer.

Código: Text
  1.  
  2.  
  3. public class PersonajeSoko
  4. {
  5.    //Mapa de bits que contiene la representacion del personaje y todos sus movimientos
  6.    private Bitmap bmp;
  7.    //Indice del cuadro segmento actual del bmp que se dibujara
  8.    private int cuadroActual;
  9.    //area del cuadro que se dibujara
  10.    private Rectangle cuadro;
  11.  
  12.    //Estados del personaje  
  13.    public enum EnEstadosPersonaje
  14.    {
  15.       caminando,
  16.       corriendo,
  17.       empujando,
  18.       halando,
  19.       durmiendo    
  20.    }
  21.    public EnEstadosPersonaje EstadoPersonaje;
  22.    
  23.    public PersonajeSoko ()
  24.   {
  25.       ...
  26.       ...
  27.   }
  28.  
  29.   //Valida si e personaje puede halar o no un cuadro
  30.   //y si puede lo hala, sino pos no
  31.   public bool Halar( ArrayCuadros)
  32.   {
  33.      //validaciones
  34.      ...
  35.      ...
  36.     //si puede halar  =>
  37.     EstadoPersonaje= EnEstadosPersonaje.halar;
  38.     ...
  39.     ...
  40.    }
  41.  
  42.    public bool Empujar...
  43.    public bool correr...
  44.    public bool caminar...
  45.  
  46.    //Operaciones para afectar el estado  del personaje de acuerdo
  47.    //a la ordenes de teclado, mouse etc...
  48.    public bool ProcesarDispositivosEntrada()
  49.    {
  50.        
  51.    }
  52.  
  53.    //valida la posicion del  personaje de acuerdo al estado en que se
  54.    //encuentre y de acuerdo a las caillas (array) que le rodeen
  55.    public bool ProcesarPosicion(ArrayCuadros)
  56.    {
  57.        switch(EstadoPersonaje)
  58.        {
  59.             case caminar:
  60.              .....
  61.              break;
  62.             case halar:
  63.             ....
  64.             break;
  65.            ...
  66.            ...
  67.            ...
  68.        }
  69.    }
  70.  
  71.    public bool ProcesarSigCuadro()
  72.    {
  73.          switch(EstadoPersonaje)
  74.        {
  75.           case caminar:      
  76.             if(cuadroActual=0 & cuadroActual<3)
  77.                cuadroActual++;
  78.             else
  79.               cuadroActual = 0;
  80.            
  81.            ...              
  82.            ...
  83.            break;
  84.           case correr:
  85.             ....
  86.             ....
  87.         }
  88.     }
  89.  
  90.    //Dibuja el personaje de acuerdo al estado y posicion procesados
  91.    public bool DibujarPersonaje
  92.    {
  93.        switch(EstadoPersonaje)
  94.        {
  95.                 ...
  96.               ...
  97.  
  98.         }
  99.         ...
  100.         ...
  101.         ...
  102.        DibujarCuadroBMP(X,Y,cuadroActual);
  103.    }
  104. }
  105.  
  106.  

Para que despues no anden diciendo que nunca ayudo a nadie.  :scream:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Can3lita

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Modelo De Clases
« Respuesta #6 en: Miércoles 8 de Junio de 2005, 15:24 »
0
GraZie... pero la verdad no esperaba algo así, sino que me lo contestes textualmente  :huh:
Aún continúo con la incertidumbre  :unsure:
[/color][/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Modelo De Clases
« Respuesta #7 en: Miércoles 8 de Junio de 2005, 15:45 »
0
el personaje debe salir en  pantalla, en la pantalla del juego,
asi que par que esto sea cierto sus atributos podrian ser
  • Posicion en el eje x</li>
  • Posicion en el eje y</li>
  • Ancho</li>
  • Alto</li>
Esos mismos atributos nos servirian para saber que celdas puede o no puede empujar en un momento determinado.

Por otro lado el personaje, segun el caso, puede tener alguno de los siguientes valores en su atributo de estado:
  • Caminando</li>
  • Corriendo</li>
  • Halando</li>
  • Empujando</li>
  • Reposo</li>
  • Durmiendo??...</li>
Lós métodos del personaje logicamente estan erlacionados con las cosas que puede hacer, asi que como cosas que puede hacer el personaje tenemos:
  • Halar</li>
  • Empujar</li>
Para saber si se puede halñar o empujar se necesita saber que cajas estan alrededor del personaje entre otras cosas... asi que es necesario recibir como parámetro la informacion de las celdas, lo cual sugiero sea en un array.

Po otro lado y yendo mas a fondo, el personaje necesita dibujarce en pantalla, redefinir su posicion de acuerdo a las ordenes del usuario y mostrar una u ptra animacion dependiendo de su estado y/o posicion:

asi que tenemos estos otros metodos:
  • DibujarPersonaje</li>
  • ProcesarSgCuadro</li>
  • ProcesarPosicion</li>
Si queremos dibujar el personaje necesitamos saber que es lo que vamos a dibujar... por supuesto una imagen asi que otro atributo del personaje es la imagen que lo representa. En el supuesto de que esta imagen este delimitada por cuadros para saber que segmento de la imagen se debe dibujar en un momento determinado se requiere otro atributo que es el rectangul oactual (area de imagen que se dibujara) y en el caso de que poseas un array de rectangulos donde cada uno es una porcion de la imagen necesitaras un indiceActual para saber cual es el cuadro que debes dibujar.

etc
etc
etc
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io