SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Barboza en Viernes 14 de Mayo de 2004, 16:51

Título: Crear Puzzle
Publicado por: Barboza en Viernes 14 de Mayo de 2004, 16:51
Hola.
Necesito crear un Puzzle en C++Builder6. Este juego es totalmente simple, pero necesito alguna idea de como hacer para que el boton clickeado se cambie por el boton en blanco si/solo si este se encuentra a la par o debajo de el.
En el programa ya he podido que se cambien por el boton en blanco, pero se cambian saltando cualquier cantidad de botones.
Esto utilizando esto
a=Button1->Left;
b=Button1->Top;
Button1->Left=Button4->Left;
Button1->Top=Button4->Top;
Button4->Left=a;
Button4->Top=b;

Siendo el Button1 el boton en blanco.

Cualquier ayuda es bienvenida a mi correo
lbarboz_a@costarricense.cr

Pura Vida!!!
Título: Re: Crear Puzzle
Publicado por: carquemo en Lunes 24 de Mayo de 2004, 16:15
hay una manera de poner el foco en un boton, con el metodo SetFocus(), esto le quita el foco a un boton y lo pone en el que lo ejecuta, puede servirte ¿no?
Título: Re: Crear Puzzle
Publicado por: carquemo en Lunes 24 de Mayo de 2004, 16:16
¿No hay una manera de poner el foco en un boton?, con el metodo SetFocus(), esto le quita el foco a un boton y lo pone en el que lo ejecuta, puede servirte ¿no?

pense que no podia modificar el otro mensaje y sin querer mande dos
Título: Re: Crear Puzzle
Publicado por: Barboza en Miércoles 26 de Mayo de 2004, 15:20
carquemo: gracias por el tip SetFocus(), pero soy bastante ignoramte en cuanto a la programacion. Si pudiera decirme o ayudarme en Como y Donde utlizar esa funcion me ayudaria mucho.
mi correo lbarboz_a@costarricense.cr.
o si no yo revisare periodicamente este foro.

Gracias

ATTE:
Barboza
Título: Re: Crear Puzzle
Publicado por: carquemo en Miércoles 26 de Mayo de 2004, 18:04
Si lo que quieres es que el boton que tiene el foco cambie a otro tienes que hacer esto:

Boton_al_que_quieres_que_vaya_el_foco->SetFocus();

y desde ese momento, este boton será el que tenga el foco.

Ahora bien, releyendo tu mensaje, lo que quieres es que cambie de color o algo asi si esta libre el otro, eso has de hacerlo por codig, comprobando si en el lugar "inferior" de la matriz esta libre (o el de la derecha o el de la izquierda)

algo asi:

 quieres comprobar el estado del elemento

if (matriz[x+1][y]==libre)  // el de la derecha
    derecha libre

if (matriz[x-1][y]== libre) // el de la izquierda
    izquierda libre

if (matriz
    arriba libre

if (matriz
    abajo libre

y asi sucesivamente, IMPORTANTE, vigila los rangos de "x" y de "y", para no pasarte del rango de la matriz, ni por abajo (<0) ni por arriba , por ejemplo en una matriz de C, ni "x-1", ni "y-1" puede ser cero, eso debes comprobarlo ANTES de acceder al elemento de la matriz

Saludos.