Objetivo: Manejo de SpriteImagen
Desarrollo
Las damas es un
juego de mesa para dos contrincantes. El juego consiste en mover las piezas en
diagonal a través de los cuadros negros o blancos de un tablero de 64 ó 100
cuadros con la intención de capturar (comer) las piezas del jugador contrario
pasando por encima de dichas piezas.
Existen varias
modalidades, con distintos tableros y número de piezas. La versión
internacional, también llamada «damas polacas», está reglada por la Fédération
Mondiale du Jeu de Dames (FMJD) y se juega en un tablero de 10×10 cuadros con
dos jugadores con 20 piezas cada uno.
El 20 de julio
de 2007, en un artículo publicado en la revista Science, se encontró la
resolución matemática para el juego de damas, siendo su resultado el de tablas.
Es decir, si ambos contrincantes juegan siempre la partida perfecta en base al
análisis completo y perfecto, las tablas están garantizadas. Chinook es el
nombre del software creado por Jonathan Schaeffer, el primer programa que
primero jugó a las damas a nivel de torneo, llegando a ganar al campeón del
mundo de la época, Don Lafferty, que finalmente resolvió el desarrollo de la
partida hacia el empate ineludiblemente.
IMPORTANTE Para nuestro
juego usaremos un tablero de ajedrez de 8x8 celdas con 8 fichas roja y 8 fichas
azules.
DISEÑO Y CONSTRUCCIÓN DE TABLERO Y FICHAS
1º crear la tabla en Paint. En Archivo
/propiedades de Paint modificar los atributos de ancho y alto por 320x320
pixel.
Buscamos en Google Imagenes, una de un tablero de damas la cual luego adaptamos en paint con le medida de 320x320 pixeles.
*Cada cuadro negro o blanco debe
ser de 40x40 pixel*
2º Construir una
ficha roja y otra azul de 40x40 pixel
Utilizando el
lienzo y SpriteImagen de
app-inventor diseñar el tablero con sus
fichas. En propiedades de Lienzo1
cambiar el ancho y alto por 320x320 pixel. Subir la foto del tablero que hicimos en Paint.
Cada ficha cambiar el ancho
y alto por 40x40 pixel crearemos las fichas en Paint. Para luego agregarlas al Lienzo llamado Tablero, mediante un SpriteImagen. Por cada ficha, usaremos un SpriteImagen, debemos fijarnos que cada una tengo la dimensión de 40x40 pixeles. Además, para facilitar la programación las nombraremos ficharoja_1...,ficharoja_8 y fichazul_1,...;fichazul_8.
Luego, completamos el tablero de la siguiente forma.
¡
PROGRAMACIÓN EN BLOQUES
1º Los elementos
del juego los almacenaremos en dos listas; lista para las fichas rojas y otra
para las azules. Hay que crear dos listas
vacías para cada tipo de ficha, como se muestra a continuación.
2º Debemos programar el screen1, para que cuando se
inicializa el juego se creer las listas con sus elementos, de siguiente forma. Debemos agregar 8 elementos en cada construye una lista, ya que corresponde a cada ficha.
3º Para el manejo de eventos, debemos lograr que al presionar una ficha
seleccionada para arrastrarla en forma diagonal a la siguiente posición. Cada
vez que se presione una ficha las demás deben permanecer deshabilitadas para moverse. Para esto, necesitamos el siguiente algoritmo:
Cuando
fichaRojaN es presionada
Para cada
elemento de la lista de fichas rojas
HACER
Poner cualquierSpriteImagen del
elemento de la lista la habilitación como falso
Fin_Para
Poner
la fichaRojaN su habilitación como cierta.
"Poner cualquierSpriteImagen " este bloque lo encontraremos en la sección cualquier componente que está al final de Bloques.
Este algoritmo debe ser para cada una de las fichas rojas y azules, pero con que hagamos solo uno y luego lo dupliquemos, poniendo atención de todas las fichas rojas y todas las fichas azules tengan su bloque.
El bloque es el siguiente:
IMPORTANTE Debes duplicar este bloque hasta obtener 16, que corresponden las 8 fichas rojas más las 8 fichas azules. NO olvides cambiar la ficha según corresponda.
4º Debemos programar que cada ficha se mueva de 40 en 40 (pixeles) ya que así definimos el tablero en un comienzo. El algoritmo corresponde a:
Si el valor de X de nueva posición > valor de X de la posición actual
entonces actualizar nuevo valor de X por
Valor anterior de X +40
Si no es mayor actualizar nuevo valor de X por Valor
anterior de X - 40
Fin_si
*Cambiar el valor actual de Y por Valor Actual + 40. (Nótese que la ficha roja siempre avanza en 40 pixel en el eje de las Y)
*Como este algoritmo se debe realizar para cada ficha que se mueva , es necesario crear un procedimiento que recibe la posición nueva de la ficha y la ficha
*Una vez que se ha cambiado la posición x e y de la fichaRojaN por los nuevos valores se deben modificar las habilitaciones de cada ficha para poder ser seleccionadas.
COMENCEMOS CON EL BLOQUE
Crear tres entradas: x, y, ficha


SpriteImagenX lo buscamos en Cualquier Componente en Bloques.
Este mismo bloque nos servirá para las fichas azules, sin embargo, debe ser de sentido contrario. Nos queda de la siguiente forma:
·
Cada vez que soltamos la ficha
al ser arrastrada a una nueva posición
se llama al procedimiento
moverFichaRoja. Observe que se envía la nueva posición y el
elemento ficha. Llamada al procedimiento para la ficha a mover:
Debemos repetir el proceso con todas las demás fichas.
IMPORTANTE No olvidar que para las fichas azules cambiar MoverFichaRoja a MoverFichaAzul.
INTERFAZ DE USUARIO
l






















No hay comentarios:
Publicar un comentario