Sie sind auf Seite 1von 10

El Juego de Tres en

Lnea
Integrantes :
- Julca Vivanco, Jose Luis
- Fernandez Mendoza, Pool
Curso:
Inteligenticia Artificial

El Juego de Tres en lnea


Es
un juego entre dos jugadores: O y X, que
marcan las casillas de un tablero de
alternadamente. Un jugador gana si consigue
tener una lnea de tres de sus smbolos: la
lnea puede ser horizontal, vertical o diagonal.
Implementaremos el presente juego en el
lenguaje Prolog mediante la IDE SWI-Prolog .
Este juego es un ejemplo clsico en la
Inteligencia Artificial.

Tres en lnea
Las Casillas estn
numeradas de 1 al 9

Sucesos para ganar:


ganafila(1,2,3);
ganafila(4,5,6);
ganafila(7,8,9);
ganacolumna(1,4,7)

ganacolumna(2,5,8)
ganacolumna(3,6,9)

gana(Tabla, Jugador) :- ganafila(Tabla, Jugador);


ganacolumna(Tabla, Jugador);
ganadiagonal(Tabla, Jugador).
x x x
ganafila(Tabla, Jugador) :Tabla = [Jugador,Jugador,Jugador,_,_,_,_,_,_]; x
Tabla = [_,_,_,Jugador,Jugador,Jugador,_,_,_];
Tabla = [_,_,_,_,_,_,Jugador,Jugador,Jugador].

ganacolumna(Tabla, Jugador) :x
Tabla = [Jugador,_,_,Jugador,_,_,Jugador,_,_];
x
Tabla = [_,Jugador,_,_,Jugador,_,_,Jugador,_];
x
Tabla = [_,_,Jugador,_,_,Jugador,_,_,Jugador].
ganadiagonal(Tabla, Jugador) :Tabla = [Jugador,_,_,_,Jugador,_,_,_,Jugador];
Tabla = [_,_,Jugador,_,Jugador,_,Jugador,_,_].

x
x

x
x

x
x

Impresin del tablero:

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

Para mostrar en pantalla las jugadas del jugador x y de la


computadora(jugador o) imprimimos
jugar :- como_jugar, jugardela([a,a,a,a,a,a,a,a,a]).
El predicado jugar comienza un juego con el usuario.
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).
A continuacin explicaremos los movimientos del juego:

1. Ejecutar el programa con jugar.


2. Se mostrar la tabla con sus respectivas posiciones.
3. El usuario ingresa un nmero y mediante xmovimiento lo
reemplaza por x en la nueva Tabla y muestra la NuevaTabla.
4. Luego el programa responde mediante las reglas de oresponde e
inmediatamente muestra la NuevanuevaTabla.
5. Una vez realizada la jugada el programa pedira hacer la siguiente
jugada mediante jugardela(NuevanuevaTabla).
6. (Cabe decir que en la primera jugada la Tabla, NuevaTabla y
NuevanuevaTabla son tablas temporales para las siguientes
jugadas a hacer)
mostrar([1,.,9])
xmovimiento(Tabla, N, NuevaTabla)
mostrar(NuevaTabla)
oresponde(NuevaTabla, NuevanuevaTabla)
mostrar(NuevanuevaTabla)
jugardela(NuevanuevaTabla).

Ejemplo, donde la
computadora(Inteligencia Artificial)
gana al usuario.

Ejemplo, donde el usuario gana a la


computadora(IA)

Ejemplo, donde el usuario y la


computadora (IA) empatan.

Das könnte Ihnen auch gefallen