inteligencia en redes de comunicaciones: implementación del juego

Transcription

inteligencia en redes de comunicaciones: implementación del juego
INTELIGENCIA EN REDES DE COMUNICACIONES:
IMPLEMENTACIÓN DEL JUEGO DEL CHINCHÓN
Janine García Morera
100061442
Alexandra López de la Oliva
Portugués
[email protected]
100061571
[email protected]
También existe la posibilidad de emparejar cartas iguales,
es decir, cartas del mismo número pero de distinto palo. Un
ejemplo de esta forma de emparejar cartas sería tener el dos
de oros, el dos de copas y el dos de espadas, también
pudiendo tener el dos de bastos.
OBJETIVO
En este documento se describe como se ha realizado la
implementación del juego del chinchón, en una versión un
poco más simplificada del original. Se explica cual ha sido
la estrategia y las decisiones principales tomadas para su
correcto funcionamiento.
Y por último está la opción de realizar chinchón que es de
la manera en que se gana el juego. Hacer chinchón consiste
en juntar siete cartas del mismo palo formando una
escalera, es decir, que sus números sean sucesivos. Un
ejemplo de chinchón sería poseer del uno de copas hasta el
siete de copas.
1. INTRODUCCIÓN
El Chinchón tuvo su origen en España. La duración de la
partida es de aproximadamente de una a dos horas, según el
número de jugadores. Se utiliza la baraja española. El
número de jugadores puede variar de dos hasta ocho (en
este último caso quizá sea necesario emplear dos barajas).
1.3 ¿Cómo se juega cada mano?
El Chinchón es un juego de naipes de la amplia familia de
juegos que se basan en combinar o ligar las cartas de la
mano antes que los contrarios. A esta familia también
pertenecen otros juegos tan populares como el rummy, el
cinquillo, el remigio o la canasta.
En el inicio de cada mano hay un repartidor que es el
encargado de barajar las cartas. Una vez las cartas estén
bien mezcladas es jugador que esté a su izquierda será el
encargado de cortar la baraja. Después de esto el repartidos
da las siete cartas a cada jugador de una en una y
empezando por el de la derecha (mano).
En las sucesivas manos el repartidor es quién en la ronda
anterior era mano, es decir la baraja se desplaza hacia la
derecha.
1.1 El Chinchón
El Chinchón es un juego de naipes de 2 a 8 jugadores. El
objetivo final del juego es formar chinchón que consiste en
formar una escalera con siete cartas del mismo palo. El
juego termina cuando un jugador se quede con una cantidad
de puntos igual o inferior a -100, o cuando el resto de
jugadores hayan sobrepasado 100 puntos o se hayan
retirado.
Una vez el repartidor ha dado las siete cartas a todos los
jugadores pone una carta boca arriba sobre la mesa. En
algunas variantes se le entrega la carta a la mano del
jugador o se le consulta si la desea en la mesa o en la mano.
En este punto la mesa con dos jugadores quedaría de la
siguiente manera:
1.2 Formas de emparejar las cartas
Para ganar una mano del chinchón se deben emparejar las
cartas, y para esto hay varias formas de hacerlo:
Se pueden formar escaleras, es decir, tres o más cartas del
mismo palo con sus números consecutivos. Un ejemplo de
escalera sería tener el uno de bastos, el dos y el tres de ese
mismo palo.
1
Si este jugador cerrara equivocadamente con una carta
mayor a 3, la cual queda descubierta en la mesa, será
penalizado con 50 puntos y se procederá a repartir
nuevamente las cartas, iniciando así una nueva partida.
Y la otra forma de cortar es de manera negativa, es decir,
cerrar con menos diez. Ésta es la forma más tradicional de
cerrar. Cuando las siete cartas del jugador forman juegos,
pude cerrar poniendo una carta de su mano (que ha robado
y vendría a ser la octava, por lo tanto no forma parte de los
juegos) y muestra sus juegos. Al jugador que cierra de esta
manera se le descuentan 10 puntos.
Hay una regla adicional y muy importante que tiene varias
versiones, que es la de “meter cartas”. La regla consiste en
que si en el momento que cierra un jugador (en positivo,
con menos diez no es válida) otro de los jugadores tiene
una carta que sirva para continuar el juego de quien ha
cortado, puede meterla juntándola al juego. De esta manera
esta carta queda invalidad y por tanto no se tendrá en
cuenta a la hora de sumar los puntos. En algunos sitios
también se dice que la carta se la puedes meter a cualquier
jugador, sin ser obligatorio que sea al que ha cortado. Esta
regla es de común acuerdo, puede ser válida o no.
Aquí podemos observar que tenemos siete cartas y un
hueco para coger una octava carta cuando robemos bien del
taco o bien de la muestra. Además vemos el taco, la
muestra y las siete cartas boca abajo de nuestro oponente.
Una vez que un jugador haya cerrado la mano y el resto
hayan metido sus cartas, se procede al recuento de puntos.
Todas las cartas suman su valor numérico. Hay versiones en
las que se juega con comodines, en esos casos se penalizan
con 50 puntos.
Una vez iniciado el juego cada jugador tiene la opción en
su turno de:
Una partida de chinchón se juega hasta un cierto número de
puntos 70 o 100, por ejemplo preestablecido por los
jugadores, que se alcanzan tras diversos juegos o repartos
de cartas.
Levantar la carta del taco, esta carta no puede ser vista por
nadie más que el jugador que la coge, además el propio
jugador no sabe qué carta es hasta que ya la haya levantado.
Gana la partida el jugador que aún no ha alcanzado la
puntuación establecida y cuando el resto de jugadores ya
han sido eliminados por superarla.
O bien tiene la posibilidad de coger la última carta que está
en la muestra, dándole la posibilidad a sus oponentes de
que sepan que carta está cogiendo pero sin saber si
realmente le sirve.
1.4 Variantes del Chinchón
En este punto debe de descartar una carta y tirarla a la
muestra. Se descartará la carta más conveniente, siendo ésta
una que no tenga emparejada y a ser posible de valor más
bajo para que puntúe lo menos posible. Esto último no se
dará si corta con -20 ya que tendrá las ocho cartas
emparejadas.
Generalmente se juega con la baraja española de 40 cartas,
sin tener en cuanta los ochos y nueves, aunque también se
pueden utilizar.
Una vez ha cogido una carta tiene la posibilidad de cerrar o
cortar la mano, esto lo puede hacer de las siguientes formas:
El jugador puede cortar de manera positiva, es decir, tener
seis cartas emparejadas y una séptima con el número menor
de cuatro. En este caso al resto de los jugadores se les
sumará la cantidad de puntos equivalente a la suma del
número de las cartas que no formen parte de algún juego
suyo.
2
Reenganche: acción de volver a incorporarse al juego
después de haber sido eliminado por haber alcanzado la
puntuación máxima.
1.6 Recomendaciones
Hay que fijarse en los descartes de cada jugador y
recordarlos, así como en las cartas que toma de la muestra.
Esto permitirá varias cosas:
En primer lugar saber qué combinaciones son posibles y
cuáles no, al conocer qué cartas han quedado perdidas en la
muestra o han sido cogidas por algún jugador.
En segundo lugar saber cuáles de nuestras cartas
emparejadas se podrán colocar en jugadas ajenas al
terminar el juego. Esto puede impedir que consigamos
chinchón, pero también evitará que otros lo tengan al
retener en nuestra mano las cartas que necesitan.
También puede encontrarse, aunque es poco habitual, el
juego del Chinchón con naipes franceses, o con más de una
baraja en el caso de que sean un gran número de jugadores.
Y por último saber qué cartas no conviene tirar a la muestra
por se las que necesitan otros contrincantes. Otro punto que
conviene tener en cuenta es procurar desprenderse, en cada
descarte, de las cartas de mayor valor que se tengan en la
mano y que cuenten con menos posibilidades de ligarse en
la mano o en jugadas ajenas.
Es normal también el uso de comodines en el juego, aunque
sólo se podrá disponer de uno por juego. Normalmente no
se permite formar un juego con más de un comodín. Si al
cortar alguno de los jugadores tiene un comodín en la mano
que no forme parte de ningún juego, éste se contará con 50
puntos.
1.7 Ejemplos de jugadas
Existe además otra regla denominada “reenganche”, se usa
con muchos jugadores y sirve para hacer más largo el
juego. Si un jugador se pasa de los 100 puntos, se
reengancha a la partida empezando con los puntos del
jugador que más tenga. Esta regla es de común acuerdo y
puede elegirse como válida o no.
Cartas iguales:
1.5 Vocabulario específico
Abatir: mostrar las cartas emparejadas al final del juego.
Baceta: montón de cartas boca abajo que queda después del
reparto y del que toman carta los jugadores, también
popularmente conocido como taco.
Cartas iguales: cartas con el mismo valor o el mismo índice.
Chinchón: tener chinchón es tener emparejadas (en una o
dos combinaciones) un jugador sus siete cartas.
Escalera de color: serie de cartas consecutivas del mismo
palo.
Emparejar o ligar: agrupar las cartas en series de cartas
iguales o en escaleras de color.
Pozo: montón de cartas boca arriba formado por las cartas
descartadas de todos los jugadores, también popularmente
conocida como muestra.
3
Vemos en esta mano que el jugador tiene tres caballos y
tres 7, como la carta restante es menor de cuatro (el as de
bastos) se puede cerrar y ganar esta partida.
posible cortar con ocho aunque esas ocho estén
emparejadas (no se puede hacer menos veinte).
Además si el ordenador tiene tres cartas iguales (por
ejemplo tres cincos) y el jugador le tira la cuarta carta con
el mismo número, éste no la cogerá porque está así
programado.
Escalera de color:
Hemos limitado el juego para que sólo puedan jugar 2
jugadores, ya que se refleja mejor el comportamiento del
oponente y añade simplicidad, aunque en la realidad se
puede jugar hasta 4, con una baraja o incluso 8 con dos.
Hay una deficiencia en el jugador, pues para cerrar al tener
8 cartas, debe tirar una y por consecuencia le cede un turno
más al ordenador. Para intentar subsanar este problema,
hemos decidido, cederle el primer turno siempre al jugador,
así que al comenzar el juego, el jugador, siempre será el
primero en coger o tirar la muestra.
3. EL CHINCHON Y LA INTELIGENCIA
ARTIFICIAL
El chinchón es un juego no determinista (interviene el azar),
por eso va a ser necesario analizar las cartas que tira y coge
el contrario.
Su objetivo es ganar al contrario, emparejando sus cartas
antes que él, para ello, va a definir un conjunto de estados
(las cartas pueden estar emparejadas o no emparejas). El
estado inicial de una carta es ‘no emparejada’, mediante
reglas combinadas con una estrategia de control, intentara
llegar al estado final de cada una de sus cartas ‘emparejada’
o al menos de 6 y tener otra carta menor que 3.
Vemos en este ejemplo de arriba dos escaleras de color. La
primera formada por el cuatro, el cinco, el seis y el siete de
oros. Y la segunda compuesta por el siete, la sota y el
caballo de bastos. Además podemos decir que esta jugada
es de menos diez ya que las siete cartas están emparejadas.
La estrategia de control establece el orden de aplicación de
las reglas y resuelve los conflictos.
2. LIMITACIONES DE NUESTRA
IMPLEMENTACIÓN
Por tanto, se puede considerar, un sistema basado en el
conocimiento, donde dentro de sus variantes, se presenta
como un conocimiento normativo, pues funciona según un
conjunto de normas aplicadas a su actividad.
Nuestra implementación tiene varias limitaciones y la
hemos hecho de una manera más simplificada.
Las reglas de nuestro chinchón tienen un encaminamiento
hacia delante (forward chaining):
En primer lugar no hemos tenido en cuenta la puntuación de
las cartas. En cambio en la decisión que hace el ordenador a
la hora de tirar una carta, si tiene varias cartas sin emparejar
y todas ellas tienen la misma prioridad (característica que
explicaremos más adelante) el ordenador tira la más alta.
Otra de la restricciones marcadas es que para poder cortar
una partida es necesario tener siete cartas, es decir, no es
4
Para llegar a cabo su finalidad, lleva integrado un algoritmo
para resolver problemas.
carta coger, que carta tirar, así como llevar a cabo
el funcionamiento general de la partida.
En la resolución de conflictos, al haber más de una regla
aplicable, se puede usar:
Además de la interfaz gráfica, tenemos puestos
mensajes para que salga por línea de comando y así
entender mejor el programa.
- Preferencia basada en reglas: asignación de prioridades
explícita.
En nuestro chinchón cada carta tiene un contador que le
sirve para asignar prioridades.
- Preferencia basada en objetos: asignación de prioridades a
objetos (patrones más comunes).
Para decidir la carta ante la misma prioridad, tiraremos la
más alta.
- Preferencia basada en estados(heurísticos): banco de
pruebas, analizar los resultados, seleccionar la mejor.
El ordenador analiza todas sus cartas y selecciona la que
peor le viene para tirarla.
3.1 Introducción a nuestro programa
3.2 ¿Cómo decide que carta coger?
Nuestra aplicación esta desarrollada en código java, para la
interfaz grafica, por tanto, hemos usado Swing.
Se compone de 4 clases:
-
Carta: es un objeto bean que representa una carta,
esta definido por un numero (del 1 al 10), un palo
(1: oros, 2: copas, 3: espadas, 4: bastos), un estado
(libre o emparejada) y una imagen que la
representa.
-
Partida: clase que contiene tanto las cartas del
jugador como las del ordenador, así como el taco
de cartas restantes y la muestra. La suma de todas
debe ser 40.
En esta clase, debemos destacar el método barajar
empleado para mezclar las cartas, de manera
totalmente aleatoria.
Y el repartir, da 7 cartas a cada contrincante de
una en una, empezando por el jugador. La
siguiente carta, será la muestra y las demás
formaran el taco.
-
Menu: herramienta para facilitar la navegación en
la interfaz grafica, te permitirá jugar tantas
partidas como quieras y proporciona ayuda sobre
las reglas del chinchón y el funcionamiento del
juego al usuario que lo requiera.
-
Aplicación: es el cerebro de nuestro programa, es
el encargado de tomar las decisiones tanto de que
5
El turno es de nuestro chinchón:
Para decidir la carta que tira el ordenador siempre se va a
basar en estos 4 principios:
Primero comprobar si tiene 6 cartas emparejadas y por
tanto solo le falta una menor o igual que 3 para poder
cerrar, para ello, si una carta de ese valor estuviera en la
muestra, la cogería y cerraría. Si no, robaría del taco y
probaría suerte, en caso de dar con una carta de número
mayor, la tira y sigue el juego, en cambio, si robara una
carta menor o igual que 3, cierra la mano y nuestro
ordenador gana.
-
Nunca tirara una carta que ya este emparejada, por
lo que siempre lo comprobara
-
De las no emparejadas, va a tirar la del contador
mas bajo. El contador define el numero de
relaciones positivas que tiene con las demás cartas,
así que a mayor numero de valor del contador,
mayor prioridad de quedarnos con esa carta.
-
Si tenemos un conjunto de cartas de la misma
prioridad tiraremos la de mayor valor numérico,
pues si la aplicación analizara las partidas por
puntos, es lógico que el ordenador se quite
primero las cartas más altas.
En caso contrario cogerá del taco. Una vez realizado este
paso decide la carta que va a tirar, cuyo procedimiento
contaremos a continuación.
-
En caso de tener varias cartas altas con la misma
prioridad y el mismo valor numérico, tirara la
primera carta que encuentre.
Finalmente, mira a ver si su jugada es jugada ganadora, en
ese caso, muestra sus cartas, en caso contrario tira la carta
que menos le conviene y le pasa el turno al jugador.
Esto lo desarrolla siempre de la siguiente manera:
primero limpia los contadores de nuestras cartas, pues
como los contadores se asignan carta a carta, las
relaciones de una carta no deben afectar a otra.
3.3 ¿Cómo decide que carta tirar?
A continuación, seleccionara todas y cada una de
nuestras cartas para ir asignándolas una prioridad
(cambiar el valor de su contador), y además podemos
llevar la cuentas del numero de cartas iguales que hay y
el número de cartas seguidas, que tiene cada carta.
Si, el ordenador no tiene 6 cartas emparejadas, debe decidir
si le interesa o no la carta de la muestra ¿La coge?, utilizara
la siguiente regla:
Solo cogerá la carta de la muestra, si le sirve para
emparejar dos cartas de las que no están emparejadas.
Según la cantidad de cartas iguales que haya, si
tenemos 3 cartas iguales, y no estaban emparejadas, las
3 cartas pasaran a estar emparejadas.
Según la cantidad de cartas seguidas, si son 3,
podremos definir una escalera, y si las cartas no
estaban previamente emparejadas, las 3 cartas pasaran
a estarlo.
6
Primero se mira si la distancia es 1, es decir, las cartas van
seguidas, si se cumple se mira si ya ha salido la carta
consecutiva a la más alta, es decir, dos posiciones más a la
derecha para comprobar que es posible hacer escalera, sino
ha salido se le sumará un punto al contador de ambas
cartas, quedando sus posiciones guardadas en un array
auxiliar para luego poder emparejarlas. Si la carta ya ha
salido en la muestra no se sumará ningún contador.
Esto mismo se hace si la distancia es 2, pero ahora lo que
comprobamos es si ha salido la carta del medio (por
ejemplo si tenemos el tres y el cinco de espadas
comprobamos si ha salido el cuatro), después actuaríamos
de la misma manera que antes con los contadores.
También se comprueba si la distancia es -1, es decir, las
cartas son consecutivas pero en orden descendente, por esto
se actúa igual que anteriormente, si mira si ha salido la carta
que tendría la posición -2, en tal caso se le sumará un punto
al contador y en caso contrario no se realiza ninguna
acción.
Y por último se mira si la distancia es -2, mirando igual que
anteriormente que la carta del medio no ha salido, y dando
los puntos correspondiente en cada situación.
3.4 ¿Cómo sabemos si el ordenador ha
ganado?
El ordenador, antes de tirar una carta, comprueba si la
jugada es ganadora, para ello cuenta el número de cartas
que tiene emparejadas, si es siete, cierra, muestra sus cartas
al jugador, para que vea que realmente ha ganado. Si, en
vez de tener 7, tiene 6, mirará el valor de la carta no
emparejada y cerrará si ésta es menor de 4. En esta ocasión,
también mostrará por pantalla sus cartas para verificar que
ha ganado.
A continuación mostramos las reglas que hemos seguido
para dar los valores a los contadores de cada carta y así
poder decidir finalmente qué carta tiramos.
Vamos recorriendo carta a carta para compararlas entre sí y
así poder darle a cada una sus puntos correspondientes.
3.5 ¿Cómo sabemos si el jugador ha ganado?
Con cada comparación miramos si las cartas son iguales, en
este caso debemos mirar si las otras cartas iguales ya han
salido en la muestra, si es así sólo se sumará un punto a
cada carta, en el caso contrario, que las cartas no hayan
salido, se les sumarán dos puntos a ambas cartas.
El ordenador no se fía del jugador cuando cierra, así que
comprueba sus cartas de manera exhaustiva para verificarlo.
No es tan rápido como la comprobación del ordenador, ya
que en esta caso, no están modificados los estados de las
cartas, así que habrá que ir una a una, asignándoles el
estado con un mecanismo similar al del tirarOrdenador()
siempre teniendo en cuenta que en este caso, no nos
preocupamos de ir asignando puntos, solo de ver si están
emparejadas, es decir, si carta a carta tienen más cartas del
mismo número (iguales) o del mismo palo ascendente o
descendentes (escalera).
También con cada comparación miramos la posibilidad de
hacer escalera de color con las cartas Para ello miramos si
son del mismo palo y una vez hecho esto el mecanismo
consiste en ir calculando la distancia entre ambas cartas
comparadas, dependiendo de dicha distancia se les
asignarán unos puntos u otros.
7
El jugador coge del taco el rey de copas, y como no le sirve
lo tira.
4. SIMULACIÓN DE UNA PARTIDA
El ordenador analiza la muestra, y la coge para hacer escalera.
Iniciamos la partida, se reparten las siguientes cartas:
Empieza la partida
El ordenador ha tomado una decision y la carta tirada es: palo 4,
numero10
Creamos la baraja
Tras tirar, cartas del ordenador:
Barajamos
Palo: 3 y el numero: 6 y el estado:EMPAREJADA
Repartimos las cartas, que gane el mejor!!
Palo: 3 y el numero: 5 y el estado:EMPAREJADA
Al inicio de la partida las cartas del ordenador son:
Palo: 3 y el numero: 7 y el estado:EMPAREJADA
Palo: 3 y el numero: 6 y el estado:LIBRE
Palo: 2 y el numero: 9 y el estado:EMPAREJADA
Palo: 3 y el numero: 5 y el estado:LIBRE
Palo: 2 y el numero: 8 y el estado:EMPAREJADA
Palo: 4 y el numero: 10 y el estado:LIBRE
Palo: 2 y el numero: 6 y el estado:LIBRE
Palo: 3 y el numero: 7 y el estado:LIBRE
Palo: 2 y el numero: 10 y el estado:EMPAREJADA
Palo: 2 y el numero: 9 y el estado:LIBRE
--------------------------------------------------------
Palo: 2 y el numero: 8 y el estado:LIBRE
Palo: 2 y el numero: 6 y el estado:LIBRE
--------------------------------------------------------
Llegado a este punto el ordenador sólo necesita una carta menor
que 4 para poder cerrar y ganar la partirda.
Al inicio de la partida las cartas del jugador son:
El jugador le tira el 2 de espadas.
Palo: 2 y el numero: 5 y el estado:LIBRE
Palo: 3 y el numero: 10 y el estado:LIBRE
El ordenador esta pensando si coger la muestra...
Palo: 3 y el numero: 2 y el estado:LIBRE
El ordenador coge la carta de la muestra porque le sirve para
cerrar la mano
Palo: 1 y el numero: 4 y el estado:LIBRE
Palo: 2 y el numero: 1 y el estado:LIBRE
Palo: 1 y el numero: 3 y el estado:LIBRE
Palo: 1 y el numero: 5 y el estado:LIBRE
8
El ordenador ha tirado una carta: 2,6
El ordenador ha ganado
5. REFERENCIAS
[1] Juegos tradicionales, entretenimiento e información
http://www.acanomas.com/Reglamentos-Juegos-deNaipes/955/Chin-Chon.
[2] Wikipedia.
http://es.wikipedia.org/wiki/Chinch%C3%B3n_(juego_
de_naipes)
[3] Apuntes de la asignatura “Inteligencia en Redes de
Comunicaciones”
9