Un juego de dominó con razonamiento basado en lógica difusa

35
Miguel Humberto Hurtado INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 47 U U N N J J U U E E G G O O D D E E D D O O M M I I N N Ó Ó C C O O N N R R A A Z Z O O N N A A M M I I E E N N T T O O B B A A S S A A D D O O E E N N L L Ó Ó G G I I C C A A D D I I F F U U S S A A Miguel Humberto Hurtado Colegio Universitario de Los Teques, Cecilio Acosta [email protected] Investigación Revista Nro 13 - 2008, p. 47 81 RESUMEN En el presente trabajo se propone un modelo para la creación de una aplicación computarizada que implante un juego de dominó basado en el uso de la Lógica Difusa. El computador que ejecute la aplicación actuará mediante inteligencia computacional basada en reglas. Las reglas serán las estrategias establecidas usualmente en el juego de dominó entre cuatro adversarios divididos en equipos de dos. Se utilizará la lógica difusa como elemento de asignación de valores idóneos a reglas de tipo empírico, como un mecanismo de inteligencia computacional. Paralelamente se presenta el modelo para el diseño del juego. Palabras clave: Lógica Difusa, sistema basado en reglas, dominó, inteligencia computacional A DOMINO GAME WITH REASONING BASED ON FUZZY LOGIC ABSTRACT This work proposes a model to create a computerized application that implants a domino game based on fuzzy logic. The computer that executes the application will act by means of computational intelligence based on rules. The rules will be the strategies usually established in the domino game: four adversaries divided into two teams. The fuzzy logic will be used to allocate suitable values to empirical rules, like a mechanism of computational intelligence. The model for the design game will also be presented. Keywords: Fuzzy Logic, rule based system, domino game, computational intelligence.

Transcript of Un juego de dominó con razonamiento basado en lógica difusa

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 47

UUNN JJUUEEGGOO DDEE DDOOMMIINNÓÓ CCOONN

RRAAZZOONNAAMMIIEENNTTOO BBAASSAADDOO EENN LLÓÓGGIICCAA

DDIIFFUUSSAA

Miguel Humber to Hur tado Colegio Univers i tar io de Los Teques, Cec i l io Acosta

miguelhu r@gmai l . com

Invest igac ión Rev is ta

Nro 13 - 2008, p . 47–81

RESUMEN

En el presente trabajo se propone un modelo para la creación de una aplicación computarizada que implante un juego de dominó basado en el uso de la Lógica Difusa. El computador que ejecute la aplicación actuará mediante inteligencia computacional basada en reglas. Las reglas serán las estrategias establecidas usualmente en el juego de dominó entre cuatro adversarios divididos en equipos de dos. Se utilizará la lógica difusa como elemento de asignación de valores idóneos a reglas de tipo empírico, como un mecanismo de inteligencia computacional. Paralelamente se presenta el modelo para el diseño del juego.

Palabras clave: Lógica Difusa, sistema basado en reglas, dominó, inteligencia computacional

A DOMINO GAME WITH REASONING BASED ON FUZZY

LOGIC

ABSTRACT

This work proposes a model to create a computerized application that implants a domino game based on fuzzy logic. The computer that executes the application will act by means of computational intelligence based on rules. The rules will be the strategies usually established in the domino game: four adversaries divided into two teams. The fuzzy logic will be used to allocate suitable values to empirical rules, like a mechanism of computational intelligence. The model for the design game will also be presented.

Keywords: Fuzzy Logic, rule based system, domino game, computational intelligence.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 48

INTRODUCCIÓN

El desarrollo de sistemas de información convencionales

contempla una serie de procesos sujetos a reglas y normas de carácter

determinístico, es decir, que para las mismas entradas producen siempre

los mismos resultados. Con el apoyo de las metodologías de análisis y

diseño de sistemas, los sistemas se ciñen a un conjunto de normativas

matemáticas y/o lógicas que determinan un flujo de información preciso,

para dar respuesta a las necesidades de los sistemas en estudio.

La lógica tradicional subyacente en los sistemas convencionales

se fundamenta en la asignación de dos posibles valores a las

proposiciones que conforman los aspectos presentes en una estructura

determinada: 0 ó 1, verdadero o falso.

En la misma medida en que los sistemas convencionales pasan

a ser soluciones comunes, se requiere del uso del computador como

apoyo a otras situaciones en principio no determinísticas, en las que el

valor de verdad de las proposiciones subyacentes ya no se limita a los

valores 0 y 1. Un ejemplo de ello viene dado por un sistema de admisión

de estudiantes a una carrera, donde un estudio de carácter vocacional

indica que un candidato a ingreso lo es en un determinado porcentaje,

por cuanto el elemento “vocación” está sujeto a un conjunto de

restricciones que impiden, de manera directa, asignar un valor binario (0

ó 1) a la capacidad de un ser humano.

Ante esta situación se han adoptado medidas tales como la

presentada por la Teoría de Conjuntos Difusos. Ésta contempla la

posibilidad de que un elemento pertenezca a un conjunto “en un

determinado grado”. De esta forma, un estudiante pudiera pertenecer al

conjunto de los estudiantes bien preparados con un grado de

pertenencia de un 80%.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 49

Así como la información se presenta con valores difusos, las

reglas de diversos sistemas poseen, por naturaleza, dicha característica.

Un sistema para conducir un vehículo se enfrenta a un conjunto de

reglas difusas tales como esquivar, frenar o acelerar en condiciones

donde la precisión matemática no existe. Para dar solución a problemas

de tal índole, nuevamente puede considerarse el apoyo de la lógica

difusa en combinación con los denominados sistemas basados en

reglas. Así, se opera no sólo sobre hechos difusos, sino también

mediante inferencias que vayan más allá de la lógica binaria.

El presente trabajo se enfoca en el juego de dominó por sus

características de manejo de hechos y reglas de carácter difuso. La

construcción de un juego de dominó fundamentado en lógica difusa

posee dos aspectos distintos; por una parte, el desarrollo de la aplicación

como tal, bien sea lúdica o como herramienta de apoyo a la

investigación, y por otra, el desarrollo de la estrategia inteligente que

permita manejar la información difusa. Mediante la aplicación de los

métodos de análisis y diseño de sistemas y del método deductivo propio

de las matemáticas, se establecerá un modelo para la aplicación y uno

para el manejo de la información difusa.

Este artículo se inicia con la descripción del juego de dominó

como narrativa que sustentará tanto el modelo de la aplicación como el

diseño de la estrategia. Continúa con la discusión de un esquema formal

para desarrollo de juegos por computadora, y se establece el diseño de

la aplicación. Posteriormente se analizan las bases relacionadas con la

teoría de juegos y la lógica difusa que dan lugar a la estrategia

inteligente a ser utilizada en el juego.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 50

EL JUEGO DE DOMINÓ

Reciben el nombre de dominó aquellas piezas o fichas,

generalmente rectangulares, que poseen una representación de dos

símbolos determinados (Dominoes, 2009). Con tales piezas se obtiene la

posibilidad de plantear una variedad de juegos mediante distintas

configuraciones de requerimientos u objetivos. Un grupo de ellos se basa

en que los valores en las fichas son representación de los números del

cero a un valor máximo (6, 9, etc.). Dentro de tal esquema, uno de los

basamentos para distintos tipos de juego viene dado por la acción de

concatenar dos fichas a través de sus extremos iguales.

Una de las versiones del juego, conocida como dominó por

parejas, se presenta como una actividad lúdica donde se conforman dos

equipos de dos personas cada uno, bajo las siguientes características:

1. El juego posee un conjunto de 28 piezas también

denominadas fichas o piedras. Cada pieza refleja una combinación de

los números del cero (0) al seis (6) tomados de dos en dos, incluyendo

repeticiones, mediante una figura rectangular dividida en dos partes,

denominadas caras, con puntos que representan los valores de la ficha.

Al valor de la cara se le denomina “pinta” o “palo”. Las piezas se

denominan según los valores que la conforman. Por ejemplo, la

combinación 3,5 se denomina “tres cinco” o “cinco tres” indistintamente.

Las partes que no contienen puntos se denominan “blanco” en lugar de

“cero”. Las fichas con ambos lados iguales se nombran mediante la

palabra “doble” y el valor correspondiente.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 51

2. Las dos parejas de jugadores se ubican en forma de rombo,

con un jugador por cada vértice, de forma tal que ninguno pueda ver las

piezas del resto. Si se enumera consecutivamente 1, 2, 3 y 4 a los

jugadores, de forma contraria al movimiento de las agujas del reloj, los

jugadores 1 y 3 forman pareja contra los jugadores 2 y 4.

3. Cada jugador recibe un total de 7 piezas distribuidas de forma

aleatoria, para utilizarlas una en cada turno a medida que el juego se

desarrolla. En cada momento del juego, cualquier jugador puede ver

cuantas piezas le quedan a sus adversarios y a su pareja, pero no puede

ver cuales son.

4. Al iniciarse una partida, el jugador que recibe el doble seis

(denominada “la cochina”), la coloca sobre la mesa y da inicio a una

ronda o mano de una partida del juego. Tal jugador recibe el nombre de

“salidor”, y se guarda como referencia que “salió en la primera mano”.

5. Cada vez que un jugador termina su turno, le corresponde

jugar al contrincante siguiente, en sentido contrario al de las agujas del

reloj, quien pasa a ser “el jugador”. Éste deberá colocar la siguiente

pieza de forma tal que junte una de sus caras con el extremo equivalente

de la hilera de piezas previamente colocadas en la mesa. Se dice en tal

caso que el jugador “golpeó” o “le pegó” a la ficha, y que “jugó” a la pieza

que queda libre. De no tener una pieza de tales características, el

jugador pierde el turno, situación que informa diciendo “paso”. No se

permite lo que en el argot cotidiano se conoce como “pasar agachado”,

es decir, que el jugador pase teniendo al menos una pieza posible de ser

jugada. Esto da origen a las jugadas “forzadas”, al obligar a alguno de

los competidores a realizar una jugada por no tener otras piezas que

jugar

6. Siguiendo la secuencia anterior para cada jugador, gana la

mano, o la ronda, el primer jugador que juegue todas sus piezas, y, con

él, gana el equipo que conforma con su compañero.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 52

7. Una vez que uno de los jugadores se convierte en el ganador

de una mano o ronda, al equipo al cual pertenece se le asigna el total de

tantos representado por la suma de los valores de las fichas que los

jugadores del bando contrario no pudieron colocar. Los puntos obtenidos

se van acumulando hasta que uno de los dos equipos logre alcanzar un

máximo previamente determinado. En el presente ejemplo, se tomará

100 tantos.

8. Al concluir cada ronda o mano, si uno de los equipos logra

acumular el máximo de tantos establecido, concluye la partida. De no

haber ganador, es decir, si ninguno de los equipos ha llegado al máximo

de puntos, se distribuyen nuevamente las piezas y le toca colocar la

primera pieza al jugador inmediatamente a la derecha del jugador que

salió en la mano previa. Tal jugador puede iniciar con la pieza que

desee.

9. El proceso anterior se continúa hasta que se logre un ganador

de la partida.

10. En el caso de que, sin agotarse las piezas de cada jugador,

se llegue a una situación límite en la que ninguno de los jugadores puede

colocar una pieza más, el juego “está trancado”, y gana la mano el

equipo que posee menor cantidad de tantos en las piezas que quedaron

sin jugar. El puntaje que se le acumula es la suma de los tantos sin jugar

del equipo contrario. De no haber ganador, la mano queda en tablas. En

tal caso, se dice que el jugador salidor “pierde la ventaja de la salida”.

11. Se asume que no existe comunicación entre ninguno de los

cuatro jugadores, es decir, que no existe forma de influir en el resultado

de una partida al no poder transmitir información sobre cual pieza jugar o

no.

12. Se asume también que cada jugador puede llevar en su

memoria un registro de las jugadas realizadas a medida que se

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 53

desarrolla el juego. De esta forma, cualquiera de los participantes puede

recordar que alguien no tuvo o colocó una pieza determinada.

13. Una situación particular del juego se da cuando sólo uno de

los jugadores posee las piezas para poder jugar en un momento

determinado. En tal caso, el jugador “está encabezado” por los valores

correspondientes. Otra situación particular es la del jugador que posee

un doble y no puede jugarlo porque ya han salido las seis piezas

restantes del mismo palo. En tal caso se dice que el doble está “muerto”.

Es de destacar que en el año 2005, la Asociación Mundial de

Dominó utilizó un esquema para determinar la salida inicial, el cual se

basa en que cada jugador selecciona una pieza de manera aleatoria. El

jugador que obtiene la pieza con la suma mayor de valores iniciará la

partida correspondiente, pudiendo jugar de primera opción la ficha que

desee.

El interés del juego de dominó viene dado por la posibilidad de

que, de acuerdo a las reglas previamente establecidas, y conforme a las

piezas que cada jugador tome al azar (o “levante”, en el argot), se pueda

desarrollar el dominio por alguno de los dos equipos contrincantes. Al

querer cualquiera de los equipos deshacerse de sus fichas, un

mecanismo es el de forzar al contrario a responder ante un grupo de

piezas, e impedir que coloque las que les conviene de entre sus propias

fichas. Esta primera táctica, al igual que otras, se traduce en la sabiduría

popular en un conjunto de estrategias que se representan en el argot del

juego con frases como “El que no repite no gana” o “El que le pega a su

familia se arruina”.

Bajo la presunción de que cada contendiente pretende lograr el

dominio del juego, y que cada jugador posee una “lógica” destinada a

efectuar la mejor jugada, los jugadores basan sus estrategias en el

manejo de los palos que poseen en mayor cantidad, y en un registro en

memoria de aquellas fichas que ha jugado el compañero y los y

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 54

contrincantes. Tal información es difusa por naturaleza, debido a que las

jugadas pueden ser forzadas sin que esto sea evidente. El elemento azar

está presente desde el momento en que se distribuyen las fichas de

manera aleatoria, generándose lo que se denomina “buenas o malas

manos”. Sin embargo, el registro memorizado de las jugadas es el

elemento referente para justificar derrotas o explicar triunfos.

EL DESARROLLO DE JUEGOS POR COMPUTADOR

Los juegos por computador han sido uno de los tipos de

aplicaciones computarizadas de mayor desarrollo. Desde los juegos en

modo texto, donde la información se limitaba a manipulación de valores

con poca respuesta visual, a los actuales juegos impregnados de

realismo y apoyados en técnicas de Inteligencia Artificial, los juegos por

computadora poseen tipologías y niveles variados que se reflejan en la

complejidad requerida para su diseño. Sin ser exhaustivos, se hace

referencia a varios tipos de juegos en la enciclopedia Web Wikipedia

(Juego, 2009), donde se conceptualizan los juegos de aventura,

disparos, educativos, estrategia, lucha, horror, plataforma, rol, musicales,

simulación, deportivos, carreras, acción y aventura, entre otros.

La bibliografía refiere a diferentes materiales relacionados con

herramientas metodológicas para la creación de juegos por computador.

Teixeira (2002), por ejemplo, describe y analiza un conjunto de aspectos

a considerar. Recomienda la elaboración de un “documento de mini

diseño” como estructura inicial para dar forma al juego, el cual incluye los

aspectos descripción general, metas del juego, interacción de jugador y

juego, diseño de menús y opciones del juego, historia, visión general de

los enemigos y temas (gráficos y de audio). Una versión más detallada

incluye a los anteriores: requerimientos, jugando el juego, descripción de

caracteres y atributos, descripción de NPC (personajes no controlados

por computador) y atributos, reglas para jugador, caracteres y NPC,

todas las reglas definidas, interacción de los jugadores y el juego,

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 55

descripción de la música, descripción del sonido, descripción de los

niveles, temas y metas; visión de la aplicación de inteligencia artificial y

una conclusión. Se entiende que cada uno de los elementos,

previamente señalados, posee su correspondencia con el “código” de

programación y la estructura de datos que los refleja en una aplicación

computarizada. Corresponde así al diseñador, a la empresa de

desarrollo de software o al especialista, dar respuesta a los mismos, con

la integración de arte, ciencia y técnica que requiere el caso, y con el

apoyo de especialistas en las diversas actividades involucradas.

En cuanto a la estructura interna, Hall (2001) plantea que, en

líneas generales, los diversos juegos obedecen a una estructura

representada en la siguiente figura:

Figura 2: Ciclo de programación. Fuente: Hall(2001). Adapt: Miguel H. Hurtado

La figura 2 representa un “ciclo” o estructura repetitiva de

programación, donde se hace un “llamado” a distintos

subprocesos/subsistemas encargados de las actividades macro

representadas en la mayoría de los juegos. Lo subdivide en los

subsistemas que se definen en los párrafos siguientes.

Entrada

Redes

Actualización

Visualización

Audio

LAN o Internet

Tarjeta de Audio

Video 3D

Framebuffer

Dispositivos de

Entrada

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 56

El subsistema de entrada toma la información del teclado, ratón

u otros dispositivos de entrada y la lleva al juego. El subsistema de redes

maneja la conexión a través de una red LAN o través de la red Internet,

lo que permite el jugar con distintos usuarios en localidades remotas. El

subsistema de actualización es el encargado de tomar las entradas del

juego, los elementos concernientes a la lógica del mismo, y la

información contenida en las variables del juego para producir con ellos

los cambios provocados por la jugada del usuario o por el paso del

tiempo. Una vez hecho este proceso, el subsistema de actualización

envía la información al subsistema de visualización para que muestre el

resultado correspondiente. El subsistema de audio emite aquella

información de sonidos que se corresponde con el juego. Este ciclo se

repite hasta que se logra algún estado que conlleve a pasar a una

siguiente fase, concluir una etapa, o finalizar el juego.

Cada uno de los elementos previamente mostrados varía en

complejidad dependiendo del juego correspondiente. En algunos juegos

se requiere gran capacidad de procesamiento de imágenes; en otros, se

requiere la aplicación de leyes físicas de acuerdo a modelos

matemáticos. A los elementos anteriores debe agregarse el manejo de

opciones de usuario, operaciones de inicialización, opciones de

configuración y opciones de finalización como componentes

generalmente aceptados.

Las opciones de usuario permitirán especificar aspectos tales

como nombre, clave, u otros datos de carácter personal. Las

operaciones de inicialización son dadas por procesos que asignan a

determinadas variables los valores correspondientes al inicio del juego,

como el valor máximo de una partida o un nivel de dificultad. Las

opciones de configuración especifican elementos el idioma y/o los

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 57

colores de fondo que se fijan de manera específica al inicio del juego o

en su instalación. Las opciones de finalización tanto para una etapa

como para el propio juego, controlan el récord de un jugador, el tiempo

transcurrido e incluso puede tenerse la posibilidad de guardar el estado

del juego con todas las variables espacio temporales requeridas. De esta

forma, cuando el usuario lo desee puede retomar un juego desde el

estado en el que lo dejó.

De manera análoga a lo planteado en referencia al diseño de la

aplicación, el desarrollador, la empresa, el especialista o el investigador

es el responsable por los procesos lógico-matemáticos, transformados a

algoritmos, que requiere el subsistema de actualización. Este subsistema

se encarga del la interrelación y activación de los diversos procesos

lógico-matemáticos que integran el núcleo de la aplicación. A pesar de

que para determinados juegos tal subsistema pudiese resultar no sólo

sencillo, sino incluso manejar contenido académico de actividades de

formación de profesionales del área de informática, tales como rutinas de

búsqueda y/o ordenamiento, el caso del dominó posee una estructura

particular que conlleva a que el estudio del algoritmo que opera el

proceso lógico sea un tema de investigación por sí mismo. Esto conduce

a trabajar el diseño general de la aplicación y el centro del juego

como los dos aspectos que conformarán la presente investigación.

DISEÑO GENERAL DE LA APLICACIÓN:

PLAN DE DISEÑO DEL J UEGO DE DOMINÓ

Como juego monousuario la estructura del dominó debería

corresponderse con versiones antecedentes de la presente

investigación, es decir, aquellas donde el usuario es un jugador cuyo

compañero de partida es el computador, y se enfrenta al equipo contrario

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 58

controlado también por el sistema. Sin embargo, existen diversas

consideraciones sobre aspectos como la cantidad de jugadores

manejados por el computador o si las cartas están descubiertas o no,

que obligan a cambios en la estructura y deben contemplarse en la etapa

de estudio preliminar. Algunos de estos aspectos son:

1. Si las fichas están descubiertas o no. Jugar con las piezas

descubiertas permitiría evaluar la jugada del computador de manera

directa, a fin de verificar las opciones tal como se están accionando. De

igual forma, permitiría comparar las estrategias del computador con las

estrategias del humano.

2. Que el usuario introduzca las piezas de los cuatro jugadores o que

sean asignadas de manera aleatoria. La base fundamental es que la

distribución de las piezas sea aleatoria. Adicionalmente, la posible carga

de los valores de las piezas por parte del usuario permitiría analizar

partidas previamente jugadas en entornos reales, lo cual serviría de

estudio tanto del juego como de los valores que se asignen a las

distintas piezas para la estrategia del computador.

3. La cantidad de jugadores controlados por el computador y sus

combinaciones.

4. El uso del juego en red.

Las cuatro condiciones previas influyen en el desarrollo de los

distintos subsistemas de la aplicación y deben ser consideradas en la

fase inicial del proceso de diseño. Lo que no se contemple en una

primera etapa, puede aumentar, de manera drástica, el esfuerzo

requerido para incorporarlo en futuras versiones del juego.

De igual forma, debe considerarse el rol del computador en la

estructura del juego. De hecho, existen varias posibilidades:

1. Establecer un mecanismo virtual de juego entre cuatro

jugadores humanos, es decir, donde el computador sea tan sólo un

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 59

mecanismo para acortar distancias. Tal alternativa es valedera en un

juego en redes de computadoras, donde cada contrincante está ante una

mesa virtual y el programa de dominó le ofrece el juego para que sea

visto y jugado desde su perspectiva, de manera análoga a la vida real.

En este caso, el papel del computador se limita a representar y

transmitir la situación en cada estado del juego. No se plantean

situaciones de toma de decisiones para el computador relacionadas con

estrategias. Los jugadores siguen siendo los humanos.

2. Implantar una estrategia determinística para el computador, lo

cual no es el caso del juego de dominó.

3. Aprovechar las ventajas del uso del computador en cuanto a

sus capacidades de cálculo y de memoria, para determinar “jugadas

razonables” conociendo las piezas de los contrincantes (aspecto factible

al ser el computador el que controla las piezas), lo cual no es el objetivo

de la presente investigación.

4. Simular el comportamiento de un “buen jugador” de dominó,

atendiendo a un proceso “lógico” que pueda ser catalogado como similar

al de un humano.

Este cuarto caso es el objetivo del juego a desarrollar en la

presente investigación. Se entiende, en consecuencia, que el juego

como actividad lúdica será la aplicación que presente el aspecto gráfico

del juego de dominó, y su flujo de información. El jugador o los jugadores

controlados por la máquina estarán dotados de una estructura de

razonamiento que será el objeto de estudio de la sección de este trabajo

titulada el Centro del Juego.

Cantidad de jugadores emulados por el computador

Supóngase que los jugadores de una partida se denotan como 1,

2, 3 y 4. De igual forma, supóngase que los jugadores 1 y 3 forman una

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 60

pareja que enfrenta a los jugadores 2 y 4. Se puede asumir las

siguientes posibilidades:

Posibilidad 1: El computador juega como 1, 2, 3 y 4; no hay jugadores

humanos. Permitiría evaluar la forma de juego del computador, en cuyo

caso las piezas deben mostrarse de manera descubierta. Puede

cambiarse el color de las piezas a los efectos de diferenciar fácilmente

las jugadas correspondientes.

Posibilidad 2: El computador juega como 2 y 4; el humano como 1 y 3.

Es análogo al caso del computador como 1 y 3 y el humano como 2 y 4.

Representa una opción ideal para evaluar el rendimiento de jugadores

humanos frente al computador. En tal caso, la opción es que los

computadores sean programados para un juego en redes u otro

mecanismo de comunicación. Bajo un esquema de evaluación, se puede

jugar abierto y en una sola máquina. Esto cambia el esquema del juego

de dominó para el usuario, por cuanto ahora está en conocimiento de las

piezas que posee el computador, aún cuando no le sean visibles. Una

posibilidad es desarrollar una estructura procedimental de forma que

tanto los jugadores como el computador reciban la información de cuál

pieza se está jugando en un momento determinado, sin visualizar las

fichas que posee el resto de los jugadores. Esto último puede lograrse

con un mecanismo que permita conocer las piezas de los jugadores 1 y

3, sin que éstas sean visibles, por ejemplo, mediante una opción de

menú. De esta manera, se puede indicar a los jugadores 1 y 3 las piezas

que les corresponden, y continuar el juego sin que las piezas sean

visibles. El aspecto procedimental debe incluir el mecanismo para indicar

al computador las jugadas de 1 y de 3.

Posibilidad 3: El computador juega 2, 3, 4 y el usuario juega 1, con el

jugador 1 visible. Es la opción clásica típica de un juego monousuario.

Permite el juego como simple actividad lúdica. Al descubierto, facilitaría

el analizar el esquema del computador con la ventaja de evaluar las

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 61

estrategias como compañero y como contrincante. Puede incluir una

opción que brinde la posibilidad de que el computador recomiende una

pieza determinada, a manera de “entrenamiento”.

Posibilidad 4: El usuario controla cada jugador, sólo como mesa virtual.

Tiene sentido como nivel de evaluación si se agrega la opción que el

computador evalúe las posibles jugadas y, a posteriori, se verifique la

pieza recomendada por el computador.

Posibilidad 5: El usuario controla a los jugadores 1 y 2, el computador a

los jugadores 3 y 4. Aceptable como “juego compartido” o en redes,

permitiendo que dos usuarios sean contrincantes en un juego

normalmente establecido para 4 personas.

Posibilidad 6: El computador controla al jugador 1, el usuario controla al

resto. Valedera para jugar con sólo tres usuarios. Como evaluación,

permitiría controlar las jugadas de los usuarios 2, 3 y 4 para evaluar las

respuestas del computador.

Los aspectos anteriores poseen respuesta en un diseño

computarizado mediante las siguientes consideraciones:

1. Una opción del programa denominada “tipojugador”, para cada

jugador, la cual refleje con el valor 0 si el jugador correspondiente será

controlador por el computador, o el valor 1 en caso de ser controlado por

el usuario. Se inicializará por defecto en el valor 0 para cada jugador,

como indicador de que el jugador será controlado por el computador.

2. Una opción del programa denominada “cubierta”, para cada jugador,

la cual controle si las fichas se presentan cubiertas o no. Se inicializará

en el valor VERDADERO (“Si” o 1). Será verificada al momento de

repartir las piezas a cada jugador, y en caso de ser su valor

VERDADERO (“SI” o 1), se presentará la ficha correspondiente de

manera oculta. En caso de poseer el valor FALSO (“No” o 0), las piezas

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 62

se presentarán descubiertas. La opción podrá cambiarse en el menú de

opciones del juego.

3. Un mecanismo de retardo para que el computador espere antes de

realizar la jugada. De lo contrario, la velocidad de la computadora puede

impedir la adecuada interacción con el usuario. Esto puede hacerse

mediante un tiempo determinado o mediante una acción del usuario, a

los efectos de mostrar su jugada. Al mismo tiempo debe haber

indicaciones de qué jugador está en turno. En el caso del computador,

debe quedar claro por cual extremo (cabeza) juega. En el caso de que le

corresponda jugar al usuario, debe haber un mecanismo de señalar cual

pieza jugar, y por cual cabeza. La asignación del tiempo de juego entre

jugadas puede establecerse como una opción de configuración.

4. Un mecanismo, opción y estructura para la carga de las piezas al

inicio de cada mano.

5. Una opción del usuario que permita realizar las jugadas sólo a nivel de

evaluación.

6. Una opción que permita “mostrar” las piezas ocultas de los jugadores.

7. Una opción de guardar/cargar la “repartición” de las piezas.

8. La opción de guardar la partida completa, incluyendo los lapsos de

tiempo utilizados por cada jugador para “pensar” la jugada

correspondiente.

9. Una opción que permita verificar si la primera mano de cada partida se

inicia de forma tradicional, es decir, con el jugador que posea el doble

seis, o si se inicia de forma aleatoria, es decir, con el jugador que

obtenga la mayor de un grupo de cuatro piezas distribuidas a los

jugadores de manera visible y aleatoria.

10. Una opción para variar el color de la pieza.

11. La opción de guardar la matriz de control del juego.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 63

El esquema de notación

El desarrollo de un programa que permita jugar dominó conlleva

una estructura de datos y un conjunto de procedimientos que reflejen las

piezas jugadas, y su orden de colocación. De esta manera es posible

recrear la partida de la forma en la cual fue jugada, contemplando

aspectos como el tiempo empleado por cada jugador.

En el caso particular del presente juego, el mínimo de

información inicial viene dado por la pieza que jugó el jugador de turno, y

si jugó por la cabeza derecha o la izquierda. De forma análoga, existen

jugadas que obedecen a casos particulares, como el hecho de que un

jugador pase o acueste un doble por cualquiera de los extremos de la

mesa.

Adicionalmente, la información previamente planteada se

corresponde con cada una de las manos del juego. Esto significa que el

esquema de notación previo, aplicable a cada mano por separado, debe

incorporarse a un esquema mayor que contemple cada mano de una

partida determinada. Para generar una similitud con un modelo escrito,

pudiéramos suponer que cada partida se anota en una hoja preparada

para ello. La información de dicha planilla debe contener elementos tales

como lugar y torneo, fecha y hora de inicio de la partida, jugadores

involucrados y una designación para cada uno, jugadores que conforman

pareja, orden de los jugadores y jugador que salió en la primera mano.

Esta información se corresponde con lo referido a la partida de manera

general. Adicionalmente, para cada mano puede colocarse el jugador

salidor, el número de la mano, si el jugador “acostó” la pieza, si el

jugador pasó, si la mano está trancada, o si el jugador finalizó. Debe

colocarse el puntaje logrado por el jugador ganador, o por cada uno de

los dos equipos en el caso de que haya habido una tranca, y las piezas

que cada jugador dejó de jugar. La planilla debe considerar los tantos

correspondientes a cada mano y a cada equipo, así como el total

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 64

definitivo y el equipo ganador. A los efectos de torneos, debe

incorporarse un espacio para observaciones, el responsable de la

anotación, los nombres de los jueces, y toda aquella información

necesaria para llevar un adecuado control de la partida.

En un trabajo llevado a cabo por Miranda, Guerrero, Osorio, y

Martínez (Hurtado, 2008), se estableció un esquema matricial (fig 3,

Matriz de Control de Juego) para registrar cada jugada que se realice y

la información correspondiente a los casos particulares como pase y

tranca. En el proceso de búsqueda de información en Internet no fue

posible determinar un esquema de anotación en uso por la Asociación

Venezolana de Dominó, a pesar de que el dominó ha sido reconocido

como deporte olímpico. Un aporte del presente trabajo vendría dado por

el esquema de notación para el seguimiento del juego.

En lo concerniente al orden de las jugadas no se requiere de la

matriz previamente referida por cuanto la información de análisis no

formaría parte de lo que reflejaría la hoja de control del juego. Esto

D M W R D M W R D M W R D M W R D M

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2

0 J A D P J P

1 J P

2 J P

3 J A P J P J D N D J

4 J D P J P

5 J D D A P J D D D D D P N

6 S P D D P J P

T

G

Leyendas: S: Salió, A: Acostó; E: Encabezó; J: Jugó; N: Pasó; P: Pegó; C: Cuadró; D: Dejó; T: Trancó; G: Ganó.

Fig 3. Matriz de Control de Juego

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 65

plantea la posibilidad de tres maneras básicas para anotación del juego

de dominó, a saber un esquema de pares ordenados, un esquema

basado en cadena de caracteres, y un esquema basado en la

simplificación de la matriz sugerida por el grupo. Para una mano

determinada, debe considerarse que el orden de representación de una

pieza influye en su significado. De esta manera, la secuencia ab, en

cualquiera de sus formas equivalentes, indica o bien la salida, o bien que

el jugador le pegó a la pieza representada como a, y dejó abierta la pieza

representada como b. Como consecuencia, las siguientes secuencias

son equivalentes, y se corresponden con una mano jugada en uno de los

casos de prueba llevado a cabo con el grupo, cuya narrativa se presenta

a continuación.

Notación Matricial

D M W R D M W R D M W R D M W R D M

6 6 3 3 6 0 5 5 0 4 3 0 4 2 5 6 1

6 3 3 5 0 0 5 4 5 3 0 4 2 3 6 1 3

Notación en forma de pares ordenados

(6,6)(6,3)(3,3)(3,5)(6,0)(0,0)(5,5)(5,4)(0,5)

(4,3)(3,0)(0,4)(4,2)(2,3)(5,6)(P,P)(6,1)(1,3)

Notación de Cadenas

666333356000555405433004422356PP6113

Figura 4. Notaciones para el juego

Narrativa:

Juegan D (Dámaso), M (Miguel), W (William), y R (Rafael).

Hacen equipo los jugadores Dámaso y William contra Miguel y Rafael.

Sale Dámaso con el doble seis, Miguel juega el 6 3, William se acuesta

con doble 3 y Rafael juega 3 5. Dámaso juega 6 0, Miguel acuesta el

doble blanco, William acuesta el doble 5 y Rafael juega el 5 4. Dámaso

juega el blanco cinco, Miguel el 4 3, William el 3 0 y Rafael el 0 4.

Dámaso juega el 4 2, Miguel el 2 3 , William el 5 6 y Rafael pasa.

Dámaso juega el 6 1, y Miguel juega el 1 3, trancando la partida. Dámaso

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 66

y William cuentan 29 tantos, en tanto que Miguel y Rafael cuentan 27

tantos. Gana la mano el equipo conformado por Miguel y Rafael,

obteniendo 29 tantos a su favor.

EL CENTRO DEL JUEGO. TEORÍA DE JUEGOS Y DOMINÓ

La Teoría de Juegos es una rama de las matemáticas que se

encarga de estudiar juegos como el dominó. Dicha teoría divide los

juegos en determinísticos y no determinísticos. Los primeros son

aquellos para los cuales es posible generar una estrategia ganadora, es

decir, una secuencia de pasos o estrategia que se dice ganadora por

cuanto representa una garantía de victoria para el jugador que la aplique,

independientemente de las circunstancias. Los juegos no determinísticos

son aquellos para los cuales no existe una estrategia ganadora.

En el caso del dominó, la presencia del elemento “azar” implica

que no es posible determinar una estrategia ganadora para uno de los

equipos. Aun en el caso de que uno de los jugadores posea un grupo de

piezas con una “estructura favorable”, su “jugada” dependerá de cómo

hayan sido colocadas las piezas previas. Esto impide afirmar que “una

buena mano” garantice el ganarla. Por extensión, no se garantiza ganar

la partida. Sin embargo, autores como Simosa (1980), “El tigre de

Carayaca”, plantean que existen jugadores catalogados como “buenos”,

y que ganan en una mayoría de casos, lo que pareciese apuntar a que

desarrollan una estrategia “exitosa” de pensamiento difuso.

Dominó y lógica difusa

Crear una aplicación computarizada para jugar dominó implica

generar una estrategia para que el computador haga las veces de un

jugador y “decida” que pieza jugar en un determinado momento como si

fuese un humano.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 67

Los seres humanos juegan al dominó mediante la aplicación de

ciertas reglas de tipo heurístico, de las cuales algunas de las comunes

son:

- Repetir la pieza a la cual debe responder el adversario

- Respetar el juego favorable del compañero de partida mediante

el uso de combinaciones que faciliten la salida de sus piezas

- Impedir la entrada de las piezas que favorezcan el ataque del

adversario.

Las reglas previamente nombradas se basan en determinadas

presunciones que se dan al inicio de una partida, como que cada jugador

favorece la entrada de las piezas de las cuales posee mayor cantidad.

De esta manera, se intenta hacer pasar a los jugadores contrarios y

lograr, como consecuencia, el dominio de cada mano.

Un esquema para dotar al computador de estas estructuras

consiste en aplicar la estadística, es decir, la teoría de probabilidades

como elemento numérico para asignar la probabilidad de seleccionar la

mejor jugada en cada caso.

Otro criterio consiste en asignar un grado de correspondencia

entre una jugada y algunas de las reglas previamente planteadas, de

forma que a cada pieza se le asigne un valor de “conveniencia” como

jugada favorable, para así establecer un mecanismo de selección de la

mejor jugada. El presente trabajo de investigación asume que tal unidad

de medida, en caso de existir, será correspondiente a un esquema

“difuso”, y en consecuencia, se plantea el elaborar una estrategia de

juego sustentada en la lógica difusa.

Lógica difusa y sistemas difusos

El estudio y la conformación teórica de la lógica borrosa (Fuzzy

Logic) o lógica difusa se debe al profesor de Ingeniería Eléctrica Lotfi A.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 68

Zadeh (1965), Universidad de California, Berkeley, en su primera

publicación en 1965. En ella se fundamentan los conceptos que amplían

el campo de la lógica al contemplar no sólo los valores bivalentes (0 y 1,

verdadero y falso), sino elementos correspondientes a un rango de

valores. Como ejemplo, puede afirmarse que una persona pertenece al

conjunto de las personas altas “en un grado de un 80 por ciento”. La

teoría de los conjuntos difusos desarrolla y extiende gran parte de los

resultados correspondientes a las operaciones, leyes y definiciones de

la lógica clásica, y contribuye como elemento central en la definición de

sistemas difusos.

Los sistemas relacionados con esta área son aquellos que en su

mayoría contemplan valores y propiedades de la lógica difusa como

parte integrante de sus estructuras. La inteligencia computacional

aplicada es uno de los campos en el que se ha desarrollado su

aplicación, donde los sistemas basados en conocimiento la utilizan

como elemento de soporte.

Los sistemas basados en reglas son aquellos en los cuales las

estructuras se presentan como elementos de la forma IF antecedente

THEN consecuente. Se genera así la organización de un grupo o

secuencia de reglas que permite concluir, clasificar, establecer

relaciones, inferir o responder a situaciones de conocimiento

fundamentadas en dicha organización, lo que conduce a los sistemas

basados en conocimiento.

Los sistemas basados en conocimiento se conforman

generalmente de un conjunto de hechos denominado base de

conocimientos, y un motor de inferencia. Dadas determinadas entradas,

el sistema aplica los hechos establecidos en la base de conocimiento y

las operaciones (manejo de reglas) del motor de inferencia para llegar a

los resultados correspondientes y resolver una situación dada. A nivel de

inteligencia computacional se establece una estructura rígida de control

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 69

de hechos basada en los procedimientos algorítmicos rigurosos

establecidos en los programas de computadora. Tal rigidez se suaviza

con la inclusión de las “etiquetas lingüísticas” lográndose,

adicionalmente, el tratamiento de información en la forma:

“Si (hay_dinero_en_cuenta) y (historial_favorable_de_crédito)

entonces (Aprobar crédito)”.

La relación lingüística anterior, vista como componente muy

remoto de un sistema basado en reglas, debe vencer la limitación de los

aspectos precisos tales como “hay_dinero_en_cuenta” o

“historial_favorable_de_crédito” (etiquetas lingüísticas).

Tal como plantea Sanz (1996), los sistemas basados en lógica

difusa “constan de una base de reglas, en este caso expresadas en

términos borrosos, y de un motor de inferencia que aplica esas reglas a

un conjunto de datos de entrada para obtener unos resultados de salida”

(p. 3). Como los datos de entrada y los de salida deben estar expresados

de manera difusa, se requiere de los procesos de “fuzzificación” y

“defuzzificación”. El primero de ellos convierte la entrada en valores

difusos, y el segundo convierte los resultados en acciones concretas.

De acuerdo a Sanz (ob. cit.), existen diversos mecanismos para

convertir las expresiones. Si las reglas son del tipo si Inp1 es Adj1 y

Inp2 es Adj2 entonces Out es Adj, “el controlador se denomina de

Mamdani por ser quien primero lo propuso en 1974 para estabilizar un

sistema en torno a su punto de trabajo” (p. 3). De igual forma, Si las

reglas son del tipo: si Inp1 es Adj1 y Inp2 es Adj2 entonces

Out=f(Inp1,Inp2), “el controlador se denomina de Sugeno por ser quien

primero lo propuso” (Sanz, ob. cit., p.4).

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 70

En la nomenclatura anterior, Inp1,Inp2 son entradas, Out es la

salida, Adj, Adj1 y Adj2 son etiquetas lingüísticas. f(Inp1,Inp2) expresa

una función de las entradas inp1 e inp2.

Dominó y computadores

En función de los planteamientos previos, se pretende generar

un modelo para un juego de dominó computarizado mediante el cual se

simule el comportamiento de un “buen jugador”, respondiendo a un

proceso lógico similar al de un humano. El modelo permitirá distribuir las

piezas de forma aleatoria, llevar el control del orden de las jugadas,

controlar los tantos o puntos de cada equipo, y las fichas jugadas por el

resto de los jugadores.

Los planteamientos teóricos permiten establecer una analogía

entre los sistemas Sugeno – Mandini y el juego de dominó. Cada jugada

representa un estado del sistema en el que la entrada es el conjunto de

piezas de un jugador, los elementos lingüísticos establecidos en el argot

cotidiano se convierten en las reglas que sustentan el motor de

inferencia (en conjunción con los valores difusos de las piezas), y las

estructuras generales de fuzzificación, defuzzificación, base de

conocimientos, y motor de inferencia se materializan mediante los

algoritmos correspondientes.

Establecimiento del modelo:

En el caso particular del presente modelo, cada jugada altera el

estado del sistema. En tal sentido:

-Se genera para cada jugador una base de conocimiento difuso

con un valor dinámico correspondiente a cada palo o pinta indicando la

conveniencia para desarrollar el juego por ellas (piezas que más se

posee), denominado Grado de Levante, y un valor denominado Grado

de Desarrollo, también dinámico, el cual aumenta o disminuye para cada

palo o pinta en función de las piezas colocadas por el jugador y/o su

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 71

compañero, y de las jugadas realizadas por los contrarios. Nótese que tal

valor no diferencia las jugadas forzadas. El Grado de Levante se

recalcula para cada turno y se actualiza la base de conocimientos,

verificándose las piezas factibles de jugarse y considerando las ya

jugadas, y se “fuzzifica” la entrada (piezas del usuario), asignando a

cada pieza el valor wi (peso) correspondiente. Para realizar la jugada, se

consideran tanto el Grado de Levante como el Grado de Desarrollo para

cada pinta, en función de las reglas que le sean aplicables. Al

concretarse la jugada, se actualiza el Grado de Desarrollo de cada pinta,

tanto para un equipo como para el otro, acumulando un punto a las

piezas que coloca el jugador y su compañero y un punto negativo a las

piezas que coloca el contrario. A las piezas “golpeadas” se les asigna un

valor positivo o negativo dependiendo de si son golpeadas por los

contrarios o por el jugador y/o su compañero. Tal información se utiliza

tanto para los jugadores de un bando como del otro multiplicándolo por 1

o por –1 según a quien se aplique. El modelo representa un control

procedimental rígido para el establecimiento del peso de cada valor.

- El motor de inferencia aplicará un conjunto de reglas difusas

(cuyo factor de fuzzificación o peso de cada regla estará configurado de

antemano con los valores por defecto de la aplicación, posteriormente

modificables por intervención del usuario), y se decide si cada regla es

aplicable a los valores de cada ficha. En caso de ser aplicable, se calcula

para cada regla su función de fuzzificación, determinando los productos

de los grados de levante y desarrollo por el valor de la regla, y

acumulando los valores para cada pinta posible de ser jugada. Esto dará

como resultado un arreglo de valores para cada pinta según las reglas

aplicables. De tal conjunto de valores se toma el máximo para cada

pinta, y de tales máximos se toma el mayor, lo cual representa la pieza a

jugar. Nótese que el cálculo se efectúa sobre el valor de la pinta que se

desea jugar, considerando la pieza como jugable. Este hecho asocia la

pinta o palo con la pieza.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 72

- El modelo debe contemplar la posibilidad de explicar las

jugadas realizadas. En tal sentido, debe almacenarse la secuencia de

valores generados. Igualmente deben considerarse aspectos tales como

los términos pieza candidata (pieza que puede ser jugada), pieza

conveniente (pieza que debe ser jugada según determinada regla) y

pieza a jugar (pieza conveniente con mayor valor de “conveniencia”), así

como las situaciones de paso o jugada forzada.

DISEÑO DEL JUEGO DE DOMINÓ

Descripción general: Dominó Fuzzy representa un juego de dominó por

parejas en el cual el usuario puede jugar contra el computador o evaluar

las jugadas del computador en una partida determinada.

Metas del juego: El usuario debe vencer al computador en una partida

convencional, o modificar/evaluar las opciones que brinda en modo

“entrenamiento”.

La pantalla del juego: La pantalla de juego estará conformada por el

tapete verde típico de las mesas de juego, el espacio para las fichas, y la

libreta de anotaciones. Las piezas que se van jugando se disponen en la

mesa con la posición correspondiente a la primera ficha ubicada en el

centro de la mesa de manera que sus dos caras apunten hacia los

jugadores 3 y 1 en caso de ser un doble y hacia los jugadores 2 y 4 en

caso contrario, con las piezas del jugador 1 colocadas en la línea inferior

de la pantalla. Si la pieza no es un doble, se colocará el valor menor en

el extremo izquierdo. En la parte superior del juego se presentarán los

menús desde donde el usuario podrá modificar las opciones o realizar

acciones tales como guardar un juego, cargar un juego previamente

guardado o iniciar una partida.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 73

Historia: Estructura convencional del juego de Dominó. No aplica.

Visión general de los enemigos: Estructura convencional del juego de

Dominó. No aplica.

Temas gráficos: Creación de las piezas del dominó. Manejo de las

mismas como elementos de dibujo. Temas de audio.

Diseño de los menú y opciones del juego:

Menú Jugadores: Permite preestablecer, para cada jugador: un nombre,

un número, si sus piezas serán visibles y si es controlado por el humano

o el computador.

Menú Especiales: Determina si las piezas estarán cubiertas, si el

computador juega o si el computador verifica. La opción muestra etiqueta

permitirá que el computador señale la o las etiquetas lingüísticas

involucradas en la decisión de una jugada.

Menú Partida: Permite cargar, guardar o recuperar una partida o sólo la

repartición. La opción de cargar permite ingresar los datos de una

partida. La opción de ver records muestra los ganadores de partidas

previas, y la opción jugar inicia una nueva partida.

Fig. 4. La pantalla del juego.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 74

Menú Mano: Permite visualizar que jugador es el salidor inicial, quien

sale en la mano actual y si tal información es visible.

Menú Motor de Inferencia: Permite visualizar las reglas y asignarles

peso.

Opciones de Salida:

Entrada/salida

Datos de

Partida

Datos partida

Partida Entrenamiento Salida 6 6

Torneo Prueba Tantos 100

Fecha 10/01/2009 Colores No

Lugar Los Teques Aleatoria Si

Número 15 Retardo 30Seg

Obs

Resultados Match

Anotador Partida Ganador

Jueces 1 1

2 2

3 1

Entrada/salida

Resultados

Partida

Partida

Manos Salidor Ganador Puntos Equipo1 Equipo2

1

2

3

Total

Gana

Recrear

Partida

Si/No

Los datos de partida representan la información general de la partida y

las opciones generales de partida, tales como el máximo de tantos, el

retardo, si es aleatoria, si la salida es tradicional y si las piezas poseen

colores. Los datos de resultado permiten mostrar la información de las

manos que conforman una partida determinada, y la opción recrear

partida permite mostrar la partida tal cual como se jugó, mediante la

matriz de control de juego.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 75

Jugando el juego: Se establecen las opciones. Al darse inicio al juego se

chequean las opciones y el juego las considera para la toma de

decisiones, reglas y los aspectos que muestra. Se determina el salidor

bien sea por la regla del doble seis o por la pieza más alta, dependiendo

del esquema seleccionado. Se inicia una mano de acuerdo a las reglas

del juego. El jugador, una vez jugada la pieza mediante el uso del

teclado o del ratón, espera el tiempo establecido para la jugada, o

presiona el botón continuar para acelerar el juego. Al concluirse la mano,

el computador totaliza y muestra el botón continuar a efectos de seguir a

la próxima mano. Concluida la partida, el jugador tiene la opción de

guardarla, recrearla o jugar una próxima partida.

Descripción de caracteres y atributos

Tablero: Mesa color verde. Por medio de opciones puede cambiarse el

color. Contiene las piezas de cada jugador, el tablero de anotación y las

piezas que se van jugando. Puede variar dependiendo de las opciones,

para colocar las piezas al descubierto o no, o para mostrar quien fue el

“salidor” de la mano y de la partida. Adicionalmente, debe presentar

como ventanas emergentes los datos de los menús.

Piezas: Las piezas son fichas de dominó en estilo sencillo.

Anotación: Tablero pequeño con grupo 1 (jugadores 1 y 3), grupo 2

(jugadores 2 y 4). A fin de personalizarlo, puede colocarse los nombres

de los jugadores.

Jugador por computador: Obedece a las características del motor de

inferencia.

Jugador no controlado por computador: Obedece a las reglas NPC.

Descripción de NPC y atributos: Los jugadores no controlados por el

computador son los usuarios, ya considerados en el análisis del juego.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 76

Reglas para jugador, caracteres y NPC: Para ambos tipos de jugadores

se impedirá las jugadas no valederas. Para los jugadores controlados por

el computador se jugará y se esperará un tiempo a fin de pasar al

próximo jugador. A los jugadores no controlados por el computador se

les presentará las fichas como objetos que sean seleccionados por

medio del ratón. Si la pieza es seleccionada, se verificará si puede ser

jugada. De poder jugarse, se verificará si por un solo extremo. En caso

de que sea por ambos extremos se pedirá al usuario que indique por

cual, mediante la acción del ratón.

Todas las reglas definidas: Vienen dadas por las reglas del dominó; las

reglas del motor de inferencia, los procedimientos de entrada y salida,

los aspectos considerados por defecto, los mecanismos de control y los

aspectos relacionados con el flujo de información.

Interacción de jugador y juego: Mediante las opciones de menú, el

usuario puede seleccionar el/los jugadores cuyas piezas serán visibles o

no, y cuales serán el/los jugadores controlados por el computador. Una

vez establecida la modalidad del juego, el usuario indicará la pieza a

jugar y por cual extremo. El juego colocará la pieza y realizará

posteriormente su propia jugada. El esquema se mantiene hasta concluir

la partida. El usuario tendrá la opción de guardar la correspondiente

partida.

Descripción de la música: No llevará música.

Descripción del sonido: Efecto de mezclado. Sonido de colocación de

ficha.

Descripción de los niveles y sus temas y metas: No aplica.

Visión de la aplicación de Inteligencia Artificial: Motor difuso.

Conclusión: El presente es un modelo para el desarrollo de la aplicación.

El prototipo se ha diseñado en un lenguaje de alto nivel, mediante la

elaboración de la mesa de juego, la planilla de anotación, las fichas o

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 77

piezas, la elaboración del panel, la implementación de los caracteres, y

las bases del motor de inferencia. Por sus características de aplicación-

investigación, no se plantean aspectos tales como gráficos en tercera

dimensión u opciones de animación, los cuales pueden contemplarse en

versiones futuras.

EL CENTRO DEL JUEGO

Esquema general del juego

Para cada jugada

1. Al grado de desarrollo de la pinta a la que le pega el jugador,

se le acumula un punto negativo si el jugador es 1 o 3 y positivo en caso

contrario.

2. Al grado de desarrollo del valor que se juega, se le acumula

un punto positivo si el jugador es 1 o 3 y negativo en caso contrario.

3. Se creará una estructura para almacenar la repartición de las

fichas mediante una función aleatoria. De esta forma, cada jugador

recibirá las piezas que le corresponden. Se crearán estructuras de datos

estáticas para el control de la base de conocimientos, encargada de una

generación dinámica de valores difusos mediante reglas como conteo de

pintas y cantidad de piezas de pintas favorables. Igualmente, se crearán

estructuras para aspectos de orden numérico como cantidad de tantos

que ha salido.

4. El flujo de información del juego se lleva a cabo mediante la

estructura procedimental del algoritmo.

5. Se eliminan del motor de inferencia las decisiones triviales

(pasar, jugar obligado), permitiendo que el algoritmo central tome

directamente estas decisiones.

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 78

Tabla de estrategias del juego

La siguiente tabla refleja las estrategias usuales del juego de

dominó.

Cada estrategia se inicia con una fila que la enumera, coloca su

etiqueta lingüística, define la regla y le asigna el peso correspondiente.

Se concluye con una línea que refleja los algoritmos para implementar la

estrategia en el computador.

Tabla de estrategias del juego

E1 Gallo que no repite no es gallo

El jugador de turno jugará a una pinta repetidamente

60%

R1E1

Jugar a la ficha de la que se poseen más piezas.

ESE1C1

Dadas las piezas candidatas, asignarle a cada cara el grado de levante.

E2 Con dobles no se llega ni a la esquina

El jugador debe salir de los dobles para evitar que

posteriormente no pueda jugarlos (dobles “muertos”)

80%

R1E2 Soltar los dobles

ESE2C1: Asignar al doble el grado de levante 6.

E3 Con violín reservar el doble

El jugador que tiene 5 o más fichas de una misma pinta, debe

conservar el doble porque el mismo representa una jugada

mas (“Encabezamiento”).

60

R1E3 Si la pieza candidata es el doble de un grupo con grado de levante 5, no jugarlo en ese momento.

ESE3C1 Colocar el peso de la regla E2 en 10. Recalcular si es necesario. Retornar el doble a su grado de levante

original.

E4 Trancar para agarrarlos buchones

En la situación de tranca del juego, aplicarla si se espera

obtener un número elevado de tantos

80

R1E4 Si es favorable, trancar el juego.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 79

(…cont.) Tabla de estrategias del juego

ESE4C1 Determinar el número de tantos por jugar, y promediarlo por fichas. Estimar la cantidad de tantos de cada

equipo. Si el estimado de tantos de los contrarios es mayor en un 20%, realizar la tranca.

E5 Mano segura no se tranca

Si se tiene la seguridad de que se ganará la mano, no se debe efectuar la tranca

R1E5 Si se está encabezado, no tirar la tranca.

ESE5C1 Determinar si se está encabezado. En tal caso, no tirar la tranca. Colocar el peso a la regla E4 en 10. Colocar el temporalmente el grado de desarrollo de la pieza en 1.

E6 El que le pega a su familia se arruina

No castigar las piezas del compañero.

60

R1E6 Si la pieza candidata castiga un tope favorable, asignar el grado de desarrollo en 10

E7 Jugar para la mano Favorecer el jugo del participante “mano”.

80

R1E7 Favorecer a la mano

ESE7C1 Si es mano el jugador compañero, y la pieza es favorable en su grado de desarrollo, colocar el grado de

desarrollo en 6.

E8 Botar tantos. Soltar tantos para que no sean contados

70

R1E8 Favorecer la salida de las piezas de alto puntaje.

ESE8C1 Si hay dos o más piezas candidatas, Sumar temporalmente los valores de las pintas de las piezas a

los grados de desarrollo de cada pieza.

E9 Impedir la salida de los

dobles

No permitir que el contrario

juegue sus doble

70

R1E9 Impedir que el contrario juego dobles

ESE9C1 Pegar al tope que esté abierto a los dobles favorables al contrario

Un Juego de Dominó con Razonamiento Basado en Lógica Difusa

INVESTIGACIÓN Revista para conocer y transformar. No. 13, 2008 80

CONCLUSIONES

El proceso de investigación realizado se apoyó en las estructuras

deductivas propias de las matemáticas, y el análisis de sistemas de

información. Se propuso el modelo tanto para la aplicación como para la

estrategia de carácter difuso que da soporte al centro del juego. El

modelo de la aplicación puede ser desarrollado en un lenguaje de

programación orientado a ambientes gráficos. El modelo para el motor

de inferencia debe ser verificado en un segundo proceso investigativo

bien sea mediante un mecanismo de demostración matemática, o bien

mediante un diseño experimental.

De forma manual, los profesores Miranda, Osorio y Guerrero

aplicaron, conjuntamente con el investigador (Hurtado, 2008), las

heurísticas previamente señaladas obteniendo una secuencia

relativamente favorable de casos en los cuales la jugada, analizada

mediante juicio de expertos, representaba adecuadamente a un jugador

con posibilidad de ganar en más de un 50% de los casos. Esto ubicaría a

tal jugador en un rango de posibilidades de éxito superior al que le

correspondería mediante los parámetros de la probabilidad convencional,

colocándolo dentro del rango de los jugadores superiores al promedio.

Miguel Humberto Hurtado

INVESTIGACIÓN Revista para conocer y transformar. No.13, 2008 81

REFERENCIAS

Dominoes. (2009, November 3). En Wikipedia, The Free Encyclopedia. De: http://en.wikipedia.org/w/index.php?title=Dominoes&oldid=323671666

Hall, J. (2001). Programming Linux Games. Building Multimedia Applications with SDL, OpenAL(tm), and Other APIs, Loki Software, Inc., ISBN-10 1-886411-49-2, ISBN-13 978-1-886411-49-4, Pp. 15, fig 1.6

Hurtado, M. (2008, junio). Creación de un juego de dominó con razonamiento, Taller realizado para las jornadas Hacia los Tópicos de Investigación, Colegio Universitario de Los Teques “Cecilio Acosta”, Los Teques, Estado Bolivariano de Miranda, Venezuela.

Juego. (2009). Wikipedia, La enciclopedia libre. De http://es.wikipedia.org/w/index.php?title=Juego&oldid=31171218.

Martínez, J., Muñoz, A. Juego de Domino para cuatro jugadores utilizando agentes artificiales, Instituto Nacional de Astrofísica, Óptica y Electrónica, Coordinación de Ciencias Computacionales, Luís Enrique Erro No 1., Sta. Ma. Tonantzintla, 72840 Puebla, Mexico.

Sanz, A. (1996). Lógica Borrosa: incidencia en las aplicaciones industriales, Departamento de Ingeniería, Electrónica y Comunicaciones, University of Zaragoza, Spain, entro Politécnico Superior, María de Luna 3, Zaragoza 50015, SPAIN.

Simosa, H. (1980). El Tigre de Carayaca: Ciencia y Arte en el Domino, 8va. Edición, Raúl Clemente Editores C.A.: Valencia, Venezuela.

Teixeira de Sousa, B.l (2002). Pp. 601, Game Programming All in One, Premier Press 2002, ISBN: 1-931841-23-3

Teoría de juegos. (2009) de octubre. Wikipedia, La enciclopedia libre. De:Videojuegos, http://es.wikipedia.org/wiki/Juego#Videojuegos [en línea]

Zadeh, L. (1965). Fuzzy sets. Information and Control, 8(3):338-353.