tres en linea
DESCRIPTION
Trabajo de Inteligencia ArtificialTRANSCRIPT
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 1/10
TRES EN LINEA
Es un juego entre dos jugadores: O y X, que marcan las casillas de un
tablero de 3×3 alternadamente. Un jugador gana si consigue tener
una línea de tres de sus símbolos: la línea puede ser horizontal, vertical
o diagonal.
Una partida ganada por el primer jugador, X:
Una partida que termina en empate:
os jugadores no tardan en descubrir que el juego per!ecto termina en
empate sin importar con qu" juega el primer jugador.
a misma simplicidad del juego de tres en raya lo hacen ideal como
herramienta pedag#gica para ense$ar los conceptos de teoría de juegos
y la rama de inteligencia arti%cial que se encarga de la b&squeda de
'rboles de juego.
(mplementaremos el presente juego en el lenguaje Prolog mediante la
()E SWI-Prolog.
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 2/10
IMPLEMENTACION DEL JUEGO EN SWI-PROLOG
*omo vemos en la tabla, cada n&mero representa cada casillero, dondese imprimir' la X o el O.
+ continuaci#n veremos las !ormas para llegar a la victoria del jugador
X u O, esto es:
Ganar Por Fila
Ganar Por Columna
Ganar Por Diagonal
as *asillas est'n numeradas de - al
/ucesos para ganar:
gana%la0-,1,234
gana%la05,6,734
gana%la08,,34 ganacolumna0-,5,83
ganacolumna01,6,3
ganacolumna02,7,3
ganadiagonal0-,6,3
ganadiagonal02,6,83
)e esta !orma de%nimos la regla gana, donde contiene ganar por %la,
ganar por columna y ganar por diagonal, como podemos ver en las
tablas siguientes sus reglas:
gana09abla, ugador3 :; gana%la09abla, ugador34
ganacolumna09abla, ugador34
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 3/10
ganadiagonal09abla, ugador3.
ganafla09abla, ugador3 :;
9abla < =ugador,ugador,ugador,>,>,>,>,>,>?4
9abla < =>,>,>,ugador,ugador,ugador,>,>,>?4
9abla < =>,>,>,>,>,>,ugador,ugador,ugador?.
ganacolumna09abla, ugador3 :;
9abla < =ugador,>,>,ugador,>,>,ugador,>,>?4
9abla < =>,ugador,>,>,ugador,>,>,ugador,>?4
9abla < =>,>,ugador,>,>,ugador,>,>,ugador?.
ganaiagonal09abla, ugador3 :;
9abla < =ugador,>,>,>,ugador,>,>,>,ugador?4
9abla < =>,>,ugador,>,ugador,>,ugador,>,>?.
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 4/10
Im!r"#i$n "l Ta%l"ro
@ara imprimir el juego en SWI-Prolog imprimiremos &ugar' El predicado
&ugar comienza un juego con el usuario y nos mostrar' el siguiente
gr'%co:
@ara que nos muestre esta tabla, se ha codi%cado la siguiente regla:
&ugar :; como>jugar, jugardela0=a,a,a,a,a,a,a,a,a?3.
)onde la regla:
como(&ugar:;
Arite0B9u eres el jugador C, ingrese la posicion de la casilla a jugar.B3,
nl,
mostrar0=-,1,2,5,6,7,8,,?3.
mo#)rar0=+,D,*,),E,,F,G,(?3 :;
Arite0BHB3,
Arite0=+,D,*?3,Arite0BHB3,nl,
Arite0BHB3,
Arite0=),E,?3,Arite0BHB3,nl, Arite0BHB3,
Arite0=F,G,(?3,Arite0BHB3,nl,nl.
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 5/10
&ugar"la09abla3 :; gana09abla, C3, Arite0B9u ganasteIB3.
&ugar"la09abla3 :; gana09abla, o3, Arite0BFano (+IB3.
&ugar"la09abla3 :; read0J3,
Cmovimiento09abla, J, Jueva9abla3,
mostrar0Jueva9abla3,
oresponde0Jueva9abla, Juevanueva9abla3,
mostrar0Juevanueva9abla3,
jugardela0Juevanueva9abla3.
a jugada del computador es de la siguiente !orma:
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 6/10
+ continuaci#n eCplicaremos los movimientos del juego:
-. Ejecutar el programa con &ugar'
1. /e mostrar' la tabla con sus respectivas posiciones.
2. El usuario ingresa un n&mero y mediante *mo+imi"n)o lo
reemplaza por C en la nueva 9abla y muestra la Nu"+aTa%la.
5. uego el programa responde mediante las reglas de or"#!on" e
inmediatamente muestra la Nu"+anu"+aTa%la.
6. Una vez realizada la jugada el programa pedira hacer la siguiente
jugada mediante &ugar"la0Juevanueva9abla3.
7. *omentario: *abe decir que en la primera jugada la 9abla,Jueva9abla y Juevanueva9abla son tablas temporales para las
siguientes jugadas a realizar.
7/18/2019 Tres en Linea
http://slidepdf.com/reader/full/tres-en-linea 7/10
E&"m!lo, on" la com!u)aora In)"lig"ncia Ar)ifcial. gana al
u#uario/
E&"m!lo, on" "l u#uario gana a la com!u)aora IA./
E&"m!lo, on" "l u#uario 0 la com!u)aora IA. "m!a)an'