viernes, 30 de julio de 2010

Juego de Damas en Prolog


Para días de junio, unos amigos de la UPN me mandaron a hacer un proyecto de su curso Lenguajes de programación...
Fue así como asumí el reto de realizar un proyecto de curso en 2 días.
El proyecto consistía en realizar un juego de Damas en prolog, particularmente swi-prolog.

Así que, sin más preludios, voy directo al grano:
Y como el post va a ser realmente extenso, voy a dedicarle varias entradas

Tuve que clasificar los predicados según su tarea... y así reduje a 4 clases:

1. Hechos:
  • fichaEsImg(numeroEnMatriz, idImagenEnMemoria).
2. Operaciones de Listas y Matrices:
  • extraerElementoLista(Lista, Posicion, Elemento).
  • extraerElementoMatriz(Lista, CoordX, CoordY, Elemento).
  • mostrarLista(Lista).
  • mostrarMatriz(Matriz).
  • cambiarElementoLista(Lista, Posicion, Elemento, NuevaLista).
  • cambiarElementoMatriz(Matriz, CoordX, CoordY, Elemento, NuevaMatriz).
  • esPar(Ficha).



3. Operaciones del Tablero:
  • contarFichas(Matriz,Jugador,CantFichas).
  • mostrarTablero(MatrizTablero).
  • iniciarJuego/0.
  • iniciarTablero(Tablero).
  • jugar(Tablero,Jugador,NuevoTablero).
  • switchJugador(Jugador, NuevoJugador).
  • actualizarTablero(Tablero, X_origen, Y_origen, X_destino, Y_destino, NuevoTablero).
  • leerJugadaOrigen(Tablero,Jugador,X,Y).
  • validarPosicionOrigen(Tablero,Jugador, X_test, Y_test, X_real, Y_real).
  • leerJugadaDestino(Tablero,Jugador,XO,YO,XD,YD,NuevoTablero).
  • validarPosicionDestino(Tablero,Jugador,XO,YO,XD,YD,XR,YR, NuevoTablero).
  • hayPieza(Jugador,Tablero,XO,YO,XD,YD,XP,YP).
4. GUI:
  • gui/0.
  • liberarMemoria/0.
  • dibujar_ficha(Ficha, Pos_X, Pos_Y).
  • actualizar_elemento(Tablero,X).

Y a continuación, algunas imágenes del juego.

2 comentarios: