Está en la página 1de 1

// para la roja o la negra va a variar, la matriz siendo el origen (0,0)

// la esquina superior izquierda, creo que asi es en el programa

METODO ENCUENTRA_FICHA ()
// metodo para encontrar la primera ficha encontrada al recorrer
// la matriz desde la ultima posicion final hasta que encuentra una ficha
MATRIZ M (8X8)

para i = 8 hasta 0 incremento -1


para j = 8 hasta 0 incremento -1
si (m(i, j) HAY FICHA_ROJA) entonces
VERIFICA_MOVIMIENTO (FICHA_ROJA) //llama el metodo
fin si
fin si
fin para
fin para
FIN METODO

METODO VERIFICA_MOVIMIENTO (FICHA_ROJA)


// primero verifica el movimiento frontal, luego los laterales
pos_frontal = MATRIZ(FICHA_ROJA.POSX + 1, FICHA_ROJA.POSY + 1)
pos_frontal_salto = MATRIZ(FICHA_ROJA.POSX + 2, FICHA_ROJA.POSY + 2)
pos_izquierda = ....
pos_derecha = ...
LIBRE = indica si la posicion esta vacia y dentro de los limites del tablero

si (pos_frontal ES LIBRE) entonces


retorna pos_frontal //frontal libre
si (pos_frontal_salto ES LIBRE) entonces
retorna pos_frontal_salto //frontal con salto si esta ocupada
si (pos_izquierda ES LIBRE)
retorna pos_izquierda // izquierda sin salto porque no vale la pena por
ahora
si (pos_derecha ES LIBRE)
retorna pos_derecha // derecha sin salto por la misma razon
sino
retorna 0
// en el llamado de este metodo, si la variable obtiene el retorno de
cero (0)
// hay que volver a llamar el metodo de ENCUENTRA_FICHA para que
encuentra otra ficha
// esa es la parte que falta, ya que si se vuelve a ejecutrar el
metodo, encontrara la misma ficha
// y seguira en un ciclo infinito
fin si
FIN METODO

También podría gustarte