|
Página 1 de 1
|
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Juego Simple De Puzzle
Hola Comunidad!.
Creo que alguien ha hecho algo parecido en gambas. Este código lo convertí y lo retoque de un libro que tenia por casa.
Seguro que mas de uno conoce este juego.En vez de ordenar letras, se ordenan números.
Al principio utilice el propio formulario como contenedor y luego lo hice con un panel.
Tenéis una imagen del juego aquí.
Y a continuación el código para Gambas3,convertido de Gambas2 y mejorado en algunos aspectos.
Hay cosas que se pueden cambiar, tamaños de las fichas, numero de estas, retocando luego el panel.
La creación de la clase fue muy simple y no necesaria realmente,estoy verde en el tema.
Se aceptan consejos sobre como debería distribuir del código.
Mejorando la distribución de nuestro código,nuestro programa sera mas claro de ver.
El programa es solo un ejemplo.Lo importante es mejorar.
Saludos.
Descripción: |
|
Descargar |
Nombre del archivo: |
PuzzleNumeros2a.tar.gz |
Tamaño: |
8.83 KB |
Descargado: |
45 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
PuzzleNumeros2a.tar.gz |
Tamaño: |
8.83 KB |
Descargado: |
45 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
PuzzleNumeros2a.tar.gz |
Tamaño: |
8.83 KB |
Descargado: |
45 veces |
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#1 Domingo, 06 May 2012, 00:41 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Juego Simple De Puzzle
Observación:
De este programa cree un paquete de instalación. Lo añadí a la carpeta juegos.
Lo curioso, es que una vez que arranca el programa, si dejo el cursor al comenzar fuera de su formulario,
temporalmente el icono del cursor esta como reloj, en espera.Unos segundos.
¿ Es normal que una aplicación haga eso ?.
Saludos.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#2 Domingo, 06 May 2012, 09:25 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Juego Simple De Puzzle
Observacion2:
Los hombres normalmente hubiéramos usado el botón de iniciar y luego jugar.
Pues las mujeres parecen tener un sexto sentido, van directamente a las piezas
sin usar antes el botón y ale, otra cosa que arreglar.
A pesar de no estar activo el panel, se moverán las piezas.Si es que...cachis!.
Saludos.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Domingo, 06 May 2012, 11:27 |
|
|
tonixs
Usuario
Registrado: Abril 2012
Mensajes: 37
Edad: 55 Ubicación:
|
Re: Juego Simple De Puzzle
Es un juego sencillo, pero me hace romer los cascos.
Si empiezas sin mas, pero bueno todo es saver.
Lo demas funciona bien, el boton terminar nose para que sirve, como no he terminado ninguno, jeje
|
#4 Domingo, 06 May 2012, 12:00 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Juego Simple De Puzzle
tonixs:
Es para parar el reloj.Realmente el programa no comprueba si esta en orden.
Saludos.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Domingo, 06 May 2012, 13:56 |
|
|
tonixs
Usuario
Registrado: Abril 2012
Mensajes: 37
Edad: 55 Ubicación:
|
Re: Juego Simple De Puzzle
Cronometro?
Eso si es un fallo, no he visto ninguno, que esta escondido?
|
#6 Domingo, 06 May 2012, 15:58 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Juego Simple De Puzzle
He introducido una pequeña mejora, ahora se pueden hacer puzzle, de varias imagenes: el programa coge una imagen de 350x350, y la divide (tiene que tener instalado el programa convert) en trozos, para luego mostrarlas en las fichas:
Puzzle sin terminar;
Puzzle terminado:
Este es el código fuente... Enlace de descarga
Para el tema de saber cuando esta "terminado de ordenar el puzzle", pienso que se deberia declarar una matriz de 8 elemento (numeros enteros del 1 al 8), la cual:
- se desordena como las fichas inciales
- cada vez que se mueve una ficha, tambien se mueven los elementos de la matriz
- cada segundo, se comprueba que la matriz tiene su orden "1,2,3,4,5,6,7,8" si lo tiene , el puzzle esta terminado,
Saludos..
Nota:
En vez de heredar de la clase Label, he hereddo de la clase ToolButton, que tiene la propiedad de poder poner dibujos (picture),
A lo me jor habria que añadir una propiedad, que indicase en que posicion esta del tablero,... abriria una nueva forma de saber si las fichas estan ordenadas o no...
última edición por jsbsan el Domingo, 06 May 2012, 19:17; editado 3 veces
|
#7 Domingo, 06 May 2012, 18:59 |
|
|
tonixs
Usuario
Registrado: Abril 2012
Mensajes: 37
Edad: 55 Ubicación:
|
Re: Juego Simple De Puzzle
Ahora si veo el cronómetro, y esto de las foto me gusta muuuuuuucho más.
|
#8 Domingo, 06 May 2012, 19:11 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Juego Simple De Puzzle
Julio:
Genial.Vas bien. Te cuento.
Mi idea era trocear una imagen.(Era otro programa)
Se que usas convert.Hace tiempo tiempo hablaste del tema.
Esto esta hecho con Gambas2.No use Gambas3, pero no creo que sea difícil de convertirlo.
Ademas Gambas3 tiene que ofrecer una gran cantidad de posibilidades del tratamiento de imágenes, que carece gambas2.
Use el componente gb.image
En este caso era solo 4 trozos de la imagen.
El formulario principal:
PRIVATE imagenes AS NEW Object[]
PRIVATE imagen_aux AS NEW Image
PRIVATE imagen_copia AS NEW Image
PRIVATE miformulario AS FormImagen
PUBLIC SUB Form_Open()
imagen_aux = imagen_aux.Load("~/Imágenes/Gambas3.png")
miformulario = NEW FormImagen(imagen_aux.Width, imagen_aux.Height, imagen_aux)
miformulario.Show
imagen_copia = imagen_aux.COPY(0, 0, imagen_aux.Width / 2, imagen_aux.Height / 2)
comun
imagen_copia = imagen_aux.COPY(imagen_aux.Width / 2, 0, imagen_aux.Width / 2, imagen_aux.Height / 2)
comun
imagen_copia = imagen_aux.COPY(0, imagen_aux.Height / 2, imagen_aux.Width / 2, imagen_aux.Height / 2)
comun
imagen_copia = imagen_aux.COPY(imagen_aux.Width / 2, imagen_aux.Height / 2, imagen_aux.Width / 2, imagen_aux.Height / 2)
comun
END
PUBLIC SUB comun()
imagenes.Add(imagen_copia)
miformulario = NEW FormImagen(imagen_copia.Width, imagen_copia.Height, imagen_copia)
miformulario.Show
END
El del formulario que muestra la imagen.(Anda que no se me han ocurrido diabluras con esto para nuestro usuario)
Valeee..para el jefe.
Entonces, lo suyo que no tiene que ser difícil es la creación del código para que trocee las imágenes y las vaya almacenando en una matriz de imágenes
y se puede usar directamente las funciones del propio gambas.
Yaaa, ya se que fue para salir del paso y rápido a la vez.
Ah, la diablura consistía...psss..psss..imagina ese formulario de imágenes con coordenadas al azar, con unas imágenes determinadas por todo el escritorio...
Si a eso le añades un bucle..
Lo que me fastidia, es que el formulario hijo debería ser independiente del principal, así la broma seria mejor.
Saludos.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#9 Lunes, 07 May 2012, 09:07 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Juego Simple De Puzzle
Shell:
Citar: imagen_copia = imagen_aux.COPY(imagen_aux.Width / 2, 0, imagen_aux.Width / 2, imagen_aux.Height / 2)
Pues si, mejor usar las ordenes que tiene ya Gambas3, para hacer lo que hace el comando "convert"
He encontrado varios .pdf, sobre algoritmos para resolver puzzles:
Enlace 1
Enlace 2
|
#10 Lunes, 07 May 2012, 20:41 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|