Anda di halaman 1dari 4

Descripcin

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.

Despus de cada tirada el programa se suspender a la espera de un carcter para continuar,


aqu nosotros debemos escribir cualquier seguido de un punto y presionar enter

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.

Descripcin Lgica y funciones del programa


La base de datos del programa son las fichas del tablero que se representan como
ficha( [X,Y],ID_ficha,Puntos ).
o [X,Y] representas los valores de la ficha.
o ID_ficha un identificador nico para cada ficha.
o Puntos la suma de X+Y

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.

buscarTirada(Tablero,JugadorActual,L1,L2,L3,L4,Numero DeJugadores QueAnPasado).


Es la funcin recursiva del programa en ella se lleva acabo todo el control de juego,con el
siguiente orden,

sigJugador(JugadorActual,SiguienteJugador).

Se obtiene la lista del jugador

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).

Se agrega al tablero la ficha seleccionada


agregarT(Tablero,Ficha,Lado,O,Ntablero).

Se elimina de la lista del jugador


eliminaFicha(Ficha,LJA,NLJA),
y se imprime en pantalla
imprime_T(Ntablero),nl,NNJP is 0,
y nuevamente se vuelve a llamar a la funcin buscaTirada(), hasta que unos de los jugadores
termine sus fichas , o el ultimo valor que recibe como argumento la funcin sea cuatro, que
indica que el juego se a cerrado .

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.

Anda mungkin juga menyukai