Domino.pl es un software modo consola que simula un juego de domino, creado en SWIProlog, como proyecto final de la materia de Inteligencia artificial, de la Benemrita
Universidad Autnoma de Puebla, el software es compilado y manejado en modo consola,
este solo tiene la opcin de cuatro jugadores para todas las partidas, siguiendo las reglas
bsicas de un juego de ajedrez verdadero. Esto es, que para el inicio de cada juego las fichas
son revueltas y repartidas aleatoriamente, inicia el juego el jugador que tenga la mula de seis,
siguiendo el turno el jugador con el nmero superior inmediato, hasta llegar al jugador
nmero cuatro el cual despus de tirar pasara el turno a jugador marcado como Jugador
nmero Uno y completar el ciclo el cual se repetir hasta que uno de los jugadores agote
sus fichas o el juego se encuentre cerrado, en este caso se sumaran los puntos que cada
jugador tenga en sus fichas, el jugador con la suma ms pequea ser el ganador.
Compilacin y ejecucin
Una vez que el archivo Domino.dl este cargado en SWI-Prolog Editor , se accionara la casilla
de consultar
Una vez hecho esto sobre la ventana de comando de la parte inferior se escribir
inciar_torneo.
con esto el siguiente jugador har su tirada, y el programa le volver a pedir otro carcter
para continuar ,este ciclo se repetir hasta que un jugador agote sus fichas o el juego se cierre,
y el conteo de puntos dictamine quien es el jugador ganador.
Una ficha puede tomar dos posiciones diferentes [ X ,Y ] o [ Y , X ] ,cada una de estas dos fichas
tiene un ID_ficha distinto.
alaeatorio(R).
Esta funcin revuelve las 28 fichas de manera aleatoria y las devuelve en R.
repartir(R,ndice,L1,L2,L3,L4).
Reparte las veintiocho fichas a L1, L2, L3 y L2 a partes iguales, y al jugador que tenga la lista L1
se le asigna el nombre de Jugador Uno, al que tenga L2 Jugador Dos y as anlogamente para
L3 y L4
mulaSeis(L1,L2,L3,L4,Jugador,NL1)
Busca en L1, L2, L3 y L4, la mula de seis y el jugador que la tenga es el jugador que iniciara el
juego.
indiceL().
Reorganiza las lista para la tirada siguiente.
sigJugador(JugadorActual,SiguienteJugador).
listaJugadorActual(Jugador,LL1,LL2,LL3,LL4,LJA).
despus se obtiene las fichas del extremo izquierdo y derecho del tablero
bExtI(Tablero,I).
bExtD(Tablero,-1,D).
se obtiene las fichas que se pueden tirar en ambos lados de tablero, se ordenan de mayor a
menor puntaje y se extrae la de mayor peso.
posivilidades(ListaJugadr,FichaLadoIzquierdo,0,Li).
Iniciar_torneo.
Es la funcin principal ella es inicia el juego, llama a las funciones para revolver y repartir
fichas, y llama a la funcin buscarTirada.