Closed joanplaja closed 4 years ago
Joan, se'm fa molt difícil d'entendre, i per tant de respondre, si no defineixes què és un Escacs
i què és un Node
. Si no m'equivoco, en el vostre disseny no apareixia res d'això. Per tal de decidir quina és l'estructura de dades més adequada, abans hem de saber quines operacions volem fer. Per tant aquest map que comentes pel que a mi respecta el deixo en quarentena.
Pel que respecta als dubtes:
Vaig comentar que el coneixement potser es podria imaginar com un graf de taulers, connectats per jugades, en el sentit que podem passar d'una configuració de tauler a una altra fent una jugada. Com sempre, convé definir bé primer les operacions i després pensar en l'estructura de dades més adequada per donar-hi suport.
Mitjançant la situació actual i la jugada, es pot deduir la situació resultant mitjançant les regles. Per tant és suficient guardar la situació inicial i la seqüència de jugades. Per això el format del fitxer JSON és com és. Ara bé, internament el teu programa pot guardar el que creguis convenient.
És normal que dubtis. Precisament això confirma el que predico sempre: decidir com guardar les coses prematurament no és bo, perquè fàcilment prendràs decisions equivocades basades en una anàlisi poc acurada. Ja ho decidiràs més endavant. Pensa primer en les operacions, què han de rebre com a paràmetre, què han de retornar... i llavors veuràs més clar com convé guardar les coses.
L'algorisme de Minimax és un bon candidat.
Miquel quan he escrit l'issue em m'estava referint al codi que ja tenim penjat. Allà tinc coneixament(node dins) i cpu defint també hi ha Escacs.Potser mires la documentacio o esquema que tenim actualment i hauriem de actualitzaro alla primer abans de fer codi.
D'acord. Ara ho veig. No n'estava al cas. De totes maneres, la meva resposta seria més o menys la mateixa:
PD No cal pas que actualitzeu el primer lliurament. Podeu anar fent directament codi i documentació Doxygen.
Aclariments: Actualment la idea és fer un coneixement simple que serveixi per a la primera versió d'escacs que volem implementar (un joc normal) sense tenir en compte regles diferents per tant a la classe coneixement he optat per fer un map<Escacs,Node>;; la qual per cada situació del tauler tingui un conjunt de nodes encadenats de les tirades a realitzar. Per fer que el map sigui la clau Escacs haurem d'implementar els mètodes HashCode i Equals.
Dubtes:
Idees: Pel tema del backtarcking quan no troba cap coneixement el qual seguir he pensat utilitzar un algorisme anomenat minMax la idea principal és no anar al final de l'arbre on puc guanyar més punts sinó que anar cap a la direcció on em puguin treure menys punts també amb certes formes per tallar l'arbre el màxim possible.