Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic
Consultas, Desarrollo de programas y petición de presupuestos:
EasyStroke: Ejemplo de uso: Gestos hechos con el ratón para movernos por las pestañas de un navegador
Un pequeño videotutorial para explicar como asignar gestos hechos con el ratón a una combinación de teclas para movernos por las pestañas de un navegador web (chromium), aunque tambien vale para chrome.
Desarrollo de Juegos de Tablero (1): Movimientos de fichas en tableros de rutas
Voy a dedicar varias entradas del blog a la programación de un juego de tablero. Y esta entrada va dedicada a como mover las fichas por un tablero.
Hay juegos donde los movimientos son bastante simples de programar, ya que consisten en cambiar la fila y/o de columna, mediante movimientos diagonales, horizontales o combinando ambos. Un ejemplo de ello son los juegos de damas o ajedrez:
Pero para otros juegos donde los movimientos de las piezas son caminos o rutas a seguir, el problema se complica:
Juego de la Oca: el camino de la fichas es una espiral
Tablero de un juego de carreras de coches
En estos casos, cada casilla tiene una coordenada donde se pueden colocar la pieza (o varias piezas). Incluso dependiendo de la ficha que usemos (un coche, una nave espacial) una dirección hacia donde avanza.
En el siguiente vídeo podéis ver como uso un pequeño programa para:
1) Tomar datos del tablero, para saber donde esta cada casilla donde irán colocada cada ficha del juego.
2) Cargar los datos del tablero y poder mover una pieza por este.
El código fuente lo podéis descargar al final del articulo.
Lo más interesante del código es la clase "Pieza":
- Mediante su constructor ( _new() ) que recibe el nombre del archivo donde estan los datos de las casillas y posiciones, el picturebox que usa como ficha que se va a desplazar, y el picturebox que contiene el tablero actual. Este médoto se encarga de cargar la información y poner la pieza en la casilla "0"
- Método Mueve(): traslada la posición de la ficha a una casilla indicada,
- Método recoretablero(): mueve la ficha por todo el recorrido del tablero, osea por todas las casillas.
Descripción del código de la clase Pieza:
'
Gambas class file
PrivatehcoordenadasAsString[]
PrivatepicttmpAsPicturebox
PrivatehptableroActualAsPictureBox
PrivateTableroOriginalNombreAsString
PrivateTableroOriginalAnchoAsInteger
PrivateTableroOriginalAltoAsInteger
PrivateTableroOriginalXAsInteger
PrivateTableroOriginalYAsInteger
PropertyPosicionAsInteger'devuelve
la casilla donde esta la pieza
El formulario principal se encarga de:
1) Cargar el dibujo del tablero
2) Definir y guardar los datos de la ruta que seguirán las piezas
3) Cargar datos de una ruta (definida en el paso 2)
4) Mover la ficha a una casilla indicada
5) Recorrer con la ficha el tablero (para ver la ruta completa que seguirá la ficha)
6) Mostrar en que casilla esta nuestra ficha.
Este es el código fuente:
'
Gambas class file
PublicdefinirAsBoolean
'define
PublicnumeroCasillaAsInteger
'contador para indicar la casilla donde esta el puntero del raton