Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Imágenes como objeto? (https://www.clubdelphi.com/foros/showthread.php?t=72286)

Jaque_Mate 08-02-2011 19:35:41

Imágenes como objeto?
 
No se si le doy la denominación correcta, pero necesitaría ayuda para digamos tratar como objetos ciertas imágenes.

Tengo que hacer un ajedrez y con mi compañero pensamos que con objetos sería mucho más fácil.

Tenemos un método un poco arcaico y seguro que incorrecto, pero hemos colocado a mano el tablero a base de Timages y encima las piezas donde tocan.

Lo que queremos es poder usarlas de manera que todos los peones tengan las mismas "opciones" de movimiento sin tener que ir pieza a pieza programandolas...

Pero no sabemos por donde empezar, he estado buscando por google y el foro pero no sale nada, ¿Alguna ayuda?

Gracias.

duilioisola 08-02-2011 21:00:47

Supongo que lo primero es olvidarte de las imágenes y generar el objeto que representa a cada ficha.
Podría ser:

Código Delphi [-]
TTablero:
   {Conjunto de fuchas}
   array [1..8,1..8] of TFicha;
end;

TFicha
   {Posicion en el tablero}
   Fila : byte;
   Columna :byte
   {Tablero al que pertenece}
   Tablero : TTablero;
end

TPeon : TFicha
   {Hereda de ficha la posicion}
   {Este método, devolvería verdadero si la posición a la que quieres mover la ficha es válida}
   funcion MovimientoValido (aFila, aColumna : byte) : boolean;
end

Lo mismo con el resto de fichas...


Una vez que toda la lógica funcione, puedes empezar a hacer que el tablero pida a las fichas que se pinten. Estas tendrán un método que pintará la forma que le corresponda en la posición en la que esté.

Neftali [Germán.Estévez] 09-02-2011 09:06:43

Al igual que duilioisola, yo creo que es más fácil que primero te olvides de las imágenes y programes la lógica. Finalmente una vez que tengas eso, lo de las imágenes es lo más sencillo.

Seguramente una ficha tendrá un color y posteriormente le puedes añadir laimagen:

Código Delphi [-]

TColorFicha = (cfBlanco, cfNegro);
TFicha = Class(...)
  private
    ...
  public
   {Posicion en el tablero}    
   property Fila:byte ...;    
   property Columna:byte ...;    
   {Tablero al que pertenece}    
   property Tablero:TTablero ...;
   {color de la ficha}
   property Color:TColorFicha ...
   {Imagen para representarla}
   property ImagenFicha:TImage ...
 end


La franja horaria es GMT +2. Ahora son las 23:08:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi