Estratègia en cada nivell de decisió

General

He fet ja el redisseny del motor de decisió.  Ara el meu botirrobot juga un xic millor (fins a on he arribar a veure! ja que no està 100% enllestit).

El canvi no ha estat de paradigma, es manté el mateix esquema: avaluar situació → seleccionar estratègia.

El canvi ha estat quan s’aplica aquest criteri. Abans era per seleccionar entre les cartes candidates segons les que hi ha a la taula i ara és sempre.

Es a dir, he trencat els prejudicis sobre què cal fer i he delegat la feina en la màquina.

I com funciona ara?

Quan toca triar trumfo es determina la situació (cartes a la ma i directe/delegat) i se selecciona una estratègia (trumfo, botifarra, coll amb més punts, més cartes, delegar).

Quan toca triar si contrar o no, també.

Quan toca tirar carta he dividit el raonament en dues etapes. Triar coll i triar valor.

Aquesta divisió en dos fases ha fet que la selecció de la primera carta (en sortir) millori considerablement en la sortida, que era el punt feble de la primera versió.

I per ara, la part de l’algorisme, es queda aquí.

Ara començo a endinsar-me en el procés de generació d’una aplicació per a Andriod. He començat amb lectures de manuals i revisió d’exemples i m’he instal·lat el SDK (visca les sigles!). Veig que no serà una tasca senzilla.

Seguiré informant.

Possibilitat d’èxit de cada estratègia

General

Tot i el que ja us he avançat abans sobre la primera versió, tinc alguns resultats sobre les conclusions fetes per l’aplicació.

Un exemple. Quina és la possibilitat d’èxit de cada jugada? Els paràmetres representats són les estratègies aplicades i el número de vegades que s’ha jugat un coll.

Éxit de la jugada segons el nombre de mans jugades del coll

Nota: la possibilitat d’èxit no es calcula directament amb la probabilitat. Es pondera amb els punts guanyats o perduts en cada cas.

Algunes lectures possibles:

  • com més esperes a tirar la carta més alta, pitjor;
  • la manilla cada cop pesa més a la ma;
  • la sortida de la segona carta més alta no sembla una bona opció*.

*He vist alguns cursos de botifarra al YouTube on es parla sovint d’aquesta senyal al company. Sortir de la segona més alta per intentar salvar la més alta. Crec que faré un anàlisi específic d’aquesta jugada sobre la qual (a priori) no en tinc gaire bona opinió.

Aprenentatge no artificial

General

Després d’enllestir el programa en Prolog que juga a la botifarra i dotar-lo de la pseudo-inteligència de l’aprenentatge incremental, he deixat el monstre jugant solet per obtenir dades.

I tant que n’he obtingut de dades! Dades suficients per a entendre que la primera versió juga malament i dades per a aprendre (jo) dels errors.

No anava desencaminada la meva teoria de selecció de carta per a cada situació. El sistema aprèn bé què fer en resposta a cada carta.

I ara arriba el però. Manca una capacitat que jo havia oblidat: triar bé la primera carta.

La primera carta de cada ma (i sobretot la sortida) no obtenen cap criteri fiable amb el meu mètode.

Així que ara és moment de parar i reflexionar en base als resultats. I començar a preparar una segona versió millorada.

PD: ja tinc pensat un model similar a l’anterior que resoldrà (a veure si amb èxit) aquest gap.

Estratègies

General

Fa temps que no escrivia. Fer el programa que juga a la botifarra en Prolog m’ha portat massa temps però, per sort, ja el tinc enllestit.

Ara és només un autòmat que juga a la babalà sense estratègia.

Per tant m’he posat ja a preparar el “cervell” de la bèstia.

Per validar el meu esquema de situació verus estratègia he començat definint unes poques “regles” que serveixin de base prou ferma per a fer que el programa sigui prou espavilat. Les detallo a continuació.  Si creieu que en falta alguna (són només estratègies bàsiques) deixeu un comentari, si us plau.

manilla: d’entre les cartes candidates tria sempre la manilla, i si no pot la més baixa.

segona: si la carta més alta té punts, tria la que tingui a continuació.

màxim: la carta més alta.

mínim: la mes baixa.

guanyadora: la carta més alta (sense jugar) d’un coll, si la té.

destrumfar: carta del trumfo. Dues variants: alt o baix.

cercafallo: carta del coll amb mes cartes. Dues variants: alt o baix.

company: tria el pal marcat pel company. També amb les dues variants.

Programaré aquestes estratègies i els associaré a cada una de les possibles situacions amb diferents prioritats.

Us mantindré informats de l’evolució.

Disseny simplificat

General

image

M’agraden les cartes tal com són. Això no treu que posats a fer una aplicació no hagi pensat en redissenyar. Crec que per facilitar la usabilitat s’han de simplificar al màxim els naips. Aquí jugo amb tres elements, en aquest esbós. Forma (esquemàtica), color (disculpeu els daltònics) i valor. Deixo un lloc privilegiat per l’As, amb nom propi. La resta el valor facial.

Bibliografia (2)

General

En un post al BUTINET, l’usuari Josep1945 amplia un xic la llista de llibres.

Com es juga a la Botifarra – Llorenç Guilera – Ed. Almon – 1999

Jugades clau de la Botifarra – Llorenç Guilera – Ed. Almon – 2002

El petit gran joc de la botifarra – Lluis Canal – Llibres del Segle – 1997

Juguem a la Botifarra – Pere Masó – Viena Serveis Editorials – 1998

El joc de la Botifarra – Joan Gallardo – Edicions el Bassegoda – 1993

http://www.butinet.cat/forums/viewtopic.php?p=19561

Bibliografia (1)

General

Crecant a la xarxa informació sobre la botifarra he trobat aquest article de fa uns anys de El País. Recull la bibliografia del joc, que, sense tenir dades per contrastar, em sembla molt pobre.

En el terreno editorial (…) la botifarra tiene en estos momentos tres libros en el mercado. El más antiguo es el de Joan Gallardo (El joc de la botifarra) editado por una casa de Olot, El Bassegoda, SL. En 1995 se publicó El petit gran món de la botifarra, de Lluís Canal, por la editorial Llibres del Segle. (…) El último en aparecer ha sido un libro de Pere Massó Bofill, publicado por Viena Serveis Editorials y que se presenta en una edición bilingüe en catalán y castellano.

M’agrada la definició final. Encertada.

Se trata de un juego mudo, en el que los jugadores no pueden hacer ningún tipo de comentario durante la mano, lo que permite la explosión de las recriminaciones mutuas al final de la misma. Al distribuirse todas las cartas, 12 por cada jugador, y haber unas normas que obligan a determinadas jugadas, los jugadores pueden deducir aproximadamente en plena jugada la distribución de las cartas, lo que introduce un factor racional al azar.

http://elpais.com/m/diario/1998/08/30/catalunya/904439252_850215.html

Triar trumfo

General

Fins ara no he parlat d’aquesta part del joc: la decisió entre delgar i cantar (triar trumfo).

És la part de la botifarra més mecanitzada i per aquest motiu no l’he comentat abans. Tot i això crec que es prou interessant exposar un xic com funciona.

No cal cap estratègia ni art. Només cal seguir un petit algorisme que, l’experiència ho confirma, funciona molt bé.

La convenció és aquesta.

Si et toca cantar i tens fallo o semifallo o cinc cartes (o més) del mateix coll, aleshores no pots delegar. Triaràs aleshores el coll amb més cartes. En cas d’empat a cartes entre dos colls, cal triar el coll que tingui els valors més alts.

Si tens els colls repartits (es a dir entre dos i quatre cartes a tots els colls) i cartes altes, cantes botifarra. La dita assegura que “con dos manillas i un as, botifarra cantaràs”.

En els altres casos delega.

Si et deleguen (ja saps aleahores quin panorama té el company) has de cantar sempre el coll amb més cartes i més altes.

Aquesta convenció l’aplica tothom.

És previsible per als contraris (que aniran a cercar el semifallo si cantes directe) però també ajuda molt al company, que por intuir el millor joc.

Pel que he vist, les aplicacions que juguen a la botifarra també solen fer així la tria (potser amb l’excepció de les cinc o més cartes del mateix coll). En canvi les aplicacions no solen tenir en compte la informació que aporta “cantar directe” pel que fa a la possibilitat de tenir semifallo.

– – – – –

Hi ha excepcions a la norma a considerar.

Si et deleguen i tens unes cartes magnífiques pot arriscar-te a cantar botifarra. Han de ser molt bones les cartes, perque hi ha una altra dita que assegura “botifarra pasada, botifarra contrada”.

No és habitual veure a les partides aquesta contrada, però si el jugador delegat no ha valorat bé les seves cartes, sol ser una excel·lent oportunitat dels contraris per a treure punts. Sol ser infal·lible contra les aplicacions.

Us recomano, si teniu oportunitat, contrar la botifarra delegada. Si més no quan jugueu amb amics o amb programes. En concursos potser no cal córrer el risc. 😉

(Nota: Haig d’advertir que personalment només he participat en un concurs en tota la meva vida. Això em desqualifica com a “expert” en concursos)

Una altra excepció habitual és delegar amb cartes de botifarra. Si el company té un joc acceptable llavors la partida pot ser devastadora. Es perd però la possibilitat de doblar els punts que atorga el cantar botifarra.

(Nota: aquesta jugada també és un parany. Si el company cantés botifarra, poc probable, i els contraris la contren, es mereix una recontrada instantània!)

Delegar amb fallo o semifallo (tot i que algunes vegades, molt poques, pot sortir bé) es considera un error greu.

(Acudit: per als experts en botifarra, tots els errors són greus i imperdonables)

– – – – –

A Blanes fa anys jugàvem (no sempre) amb una norma que deia que si un jugador no tenia cap punt a la ma es tornaven a repartir les cartes.

Amb el temps vàrem anar abandonant aquesta norma ja que preval la possibilitat que el teu company tingui molt bon joc en aquella ma. D’altra banda, sense tenir cap punt pots tenir també bon joc, comptant amb l’altre dita famosa (i potser la més encertada de totes) que diu “qui té un company té una mina”.

No he vist cap aplicació que suporti aquesta modalitat de joc.

Per acabar una anècdota. En una partida jugada fa anys el jugador que cantava es va trobar a les mans onze cartes del mateix coll i semifallo. Disposava de dues manilles (la del coll multitudinari i la del semifallo). Incomprensiblement (per a mi) va cantar botifarra, per assegurar-se el doble de punts.

La jugada li va sortir prou bé, però encara avui penso que es va equivocar.

Canviar d’estratègia és jugar bé

General

Una forma intractable de crear un jugador automàtic seria escriure totes les possibles combinacions de cartes i dir quina cal jugar cada vegada.

No és pràctic. Ni tampoc educatiu!

Així que cal “simplificar” el nostre jugador informàtic per tal que sigui senzill de programar però astut en les partides.

Aquí hi ha una proposta de model de jugador o model de la Intel·ligència Artificial (I. A.) que hauria de regir aquest jugador.

Partim d’un procés previ de classificació de les cartes d’un jugador en subconjunts no disjunts en funció de les regles del joc i de les cartes damunt la taula: trumfos si tens fallo, cartes que maten, cartes “arrastrades”, la més baixa,  punts per carregar…

Els subconjunts segueixen els criteris de la botifarra i s’ordenen (1, 2, 3… ) de manera que has de tirar obligatòriament una carta del primer subconjunt no buit.

Això simplifica el procediment de tria de cartes entre les que tens a la ma. El procés deixa només les “cartes vàlides” d’entre totes les cartes candidates.

També proporciona informació de quin és el motiu pel qual només puc tirar aquestes cartes (quin subconjunt) de manera que facilitarà el segon pas.

La segona etapa sera la selecció d’estrategia. La I.A. aplicarà sobre el primer subconjunt no buit una “estratègia” de selecció de carta.

Les estratègies són diferents algoritmes, alguns molt simples i d’altres que requereixen més enginy o coneixement.

Estratègies a tall d’exemple:
– la carta més alta
– la carta més baixa
– salvar punts
– donar punts al company
– la millor jugada (segons estadística)
– la millor jugada (basat en aprenentatge)
– a l’atzar

Així, segons el meu parer, és com juga un humà. Tria les cartes que pot tirar i aplica una estratègia, en funció de si surt, si ha cantat, si és botifarra, si té fallo, de com ha anat la partida, de com juguen els demés, si vol avisar al company, etc.

image

I. A. grups i estratègies en la botifarra

Expliquem-ho amb un exemple.

Quan una persona aprèn a jugar té la tendència de tirar la carta més alta (estratègia la carta més alta) excepte quan es canta botifarra, que llavors es guarda les més altes per al final (estratègia la carta més baixa).

Aquest jugador novell només coneix dues estratègies i les aplica amb un criteri simple (butifarra o no).

El novell segueix jugant així fins que arriba el moment que surt de cavall (és la més alta que té d’aquell pal) i el recriminen: “sortida de cavall, sortida d’animal!”.

Acaba d’aprendre una tercera estratègia conservadora: no facis perdre punts al company!

En resum, la I.A. consistiria en un selector d’estratègies, per tal d’aplicar la selecció òptima en cada moment del joc.

Com més estratègies tinguis millor, però també més complexe serà la decisió.

Nota: haig d’agrair aquest post a en Marc Güell. És un resum dels missatges intercanviats amb ell arran d’una converesa relacionada amb els “bots” que juguen a la botifarra.