juego prolog

Download Juego Prolog

If you can't read please download the document

Upload: poolfer04

Post on 06-Nov-2015

19 views

Category:

Documents


0 download

DESCRIPTION

Código del juego en Prolog

TRANSCRIPT

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Tres en Linea %% %% Integrantes : %% Julca Vivanco, Jose Luis %% Fernandez Mendoza, Pool %% %% Curso : Inteligentica %% Artificial %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gana(Tabla, Jugador) :- ganafila(Tabla, Jugador);ganacolumna(Tabla, Jugador); ganadiagonal(Tabla, Jugador).ganafila(Tabla, Jugador) :- Tabla = [Jugador,Jugador,Jugador,_,_,_,_,_,_]; Tabla = [_,_,_,Jugador,Jugador,Jugador,_,_,_]; Tabla = [_,_,_,_,_,_,Jugador,Jugador,Jugador].ganacolumna(Tabla, Jugador) :- Tabla = [Jugador,_,_,Jugador,_,_,Jugador,_,_]; Tabla = [_,Jugador,_,_,Jugador,_,_,Jugador,_]; Tabla = [_,_,Jugador,_,_,Jugador,_,_,Jugador].ganadiagonal(Tabla, Jugador) :- Tabla = [Jugador,_,_,_,Jugador,_,_,_,Jugador]; Tabla = [_,_,Jugador,_,Jugador,_,Jugador,_,_].omovimiento([a,B,C,D,E,F,G,H,I], Jugador, [Jugador,B,C,D,E,F,G,H,I]).omovimiento([A,a,C,D,E,F,G,H,I], Jugador, [A,Jugador,C,D,E,F,G,H,I]).omovimiento([A,B,a,D,E,F,G,H,I], Jugador, [A,B,Jugador,D,E,F,G,H,I]).omovimiento([A,B,C,a,E,F,G,H,I], Jugador, [A,B,C,Jugador,E,F,G,H,I]).omovimiento([A,B,C,D,a,F,G,H,I], Jugador, [A,B,C,D,Jugador,F,G,H,I]).omovimiento([A,B,C,D,E,a,G,H,I], Jugador, [A,B,C,D,E,Jugador,G,H,I]).omovimiento([A,B,C,D,E,F,a,H,I], Jugador, [A,B,C,D,E,F,Jugador,H,I]).omovimiento([A,B,C,D,E,F,G,a,I], Jugador, [A,B,C,D,E,F,G,Jugador,I]).omovimiento([A,B,C,D,E,F,G,H,a], Jugador, [A,B,C,D,E,F,G,H,Jugador]).xmovimiento([a,B,C,D,E,F,G,H,I], 1, [x,B,C,D,E,F,G,H,I]).xmovimiento([A,a,C,D,E,F,G,H,I], 2, [A,x,C,D,E,F,G,H,I]).xmovimiento([A,B,a,D,E,F,G,H,I], 3, [A,B,x,D,E,F,G,H,I]).xmovimiento([A,B,C,a,E,F,G,H,I], 4, [A,B,C,x,E,F,G,H,I]).xmovimiento([A,B,C,D,a,F,G,H,I], 5, [A,B,C,D,x,F,G,H,I]).xmovimiento([A,B,C,D,E,a,G,H,I], 6, [A,B,C,D,E,x,G,H,I]).xmovimiento([A,B,C,D,E,F,a,H,I], 7, [A,B,C,D,E,F,x,H,I]).xmovimiento([A,B,C,D,E,F,G,a,I], 8, [A,B,C,D,E,F,G,x,I]).xmovimiento([A,B,C,D,E,F,G,H,a], 9, [A,B,C,D,E,F,G,H,x]).xmovimiento(Tabla, _, Tabla) :- write('Movimiento Ilegal.'), nl.mostrar([A,B,C,D,E,F,G,H,I]) :-write('|'),write([A,B,C]),write('|'),nl,write('|'),write([D,E,F]),write('|'),nl,write('|'), write([G,H,I]),write('|'),nl,nl.jugar :- como_jugar, jugardela([a,a,a,a,a,a,a,a,a]).como_jugar:- write('Tu eres el jugador x, ingrese la posicion de la casilla a jugar.'), nl, mostrar([1,2,3,4,5,6,7,8,9]).jugardela(Tabla) :- gana(Tabla, x), write('Tu ganaste!').jugardela(Tabla) :- gana(Tabla, o), write('Gano IA!').jugardela(Tabla) :- read(N), xmovimiento(Tabla, N, NuevaTabla), mostrar(NuevaTabla), oresponde(NuevaTabla, NuevanuevaTabla), mostrar(NuevanuevaTabla), jugardela(NuevanuevaTabla).puede_x_ganar(Tabla) :- omovimiento(Tabla, x, NuevaTabla), gana(NuevaTabla, x).oresponde(Tabla,NuevaTabla) :- omovimiento(Tabla, o, NuevaTabla), gana(NuevaTabla, o),!. % Si no gana -> paraoresponde(Tabla,NuevaTabla) :- omovimiento(Tabla, o, NuevaTabla), not(puede_x_ganar(NuevaTabla)).oresponde(Tabla,NuevaTabla) :- omovimiento(Tabla, o, NuevaTabla).oresponde(Tabla,NuevaTabla) :- not(member(a,Tabla)),!, write('El juego termino sin ganador!'), nl, NuevaTabla = Tabla.