udg-propro-spring-2020 / projecte-2020-a3

projecte-2020-a3 created by GitHub Classroom
0 stars 1 forks source link

Carregar partida guardada #8

Closed miqueldedo closed 4 years ago

miqueldedo commented 4 years ago

Sobre carregar una partida guardada, entenc que el format serà el mateix que el que tenim a l'annexe 2 del fitxer escacs_generics. En aquest, es guarden les posicions inicials. Per a què és important saber-les? Ja que sabent els moviments que s'han fet, podem arribar a saber les seves posicions inicials. Si aquestes posicions inicials fóssin irrellevants, les saltaria. Un altre dubte també, és sobre si ens recomanaries tenir una classe que ens guardi els torns, o com en dieu en aquest fitxer, tirades. Ja des de l'inici que hi donem voltes però ens acabem de decidir. Seria simplement per guardar-ne la informació i poder-ho passar a JSON de manera molt més senzilla. Com ho veus? Merci!

miqueldedo commented 4 years ago

De fet, sí que les posicions inicials són irrellevants ja que es generen de manera automàtica al crear el tauler. Per tant, primer dubte arreclat!

miquelbofill commented 4 years ago

En aquest, es guarden les posicions inicials. Per a què és important saber-les? Ja que sabent els moviments que s'han fet, podem arribar a saber les seves posicions inicials.

Crec que t'estàs confonent. Les jugades que et donen s'han d'efectuar a partir de la situació inicial, per determinar la situació a partir de la qual cal continuar.

Un altre dubte també, és sobre si ens recomanaries tenir una classe que ens guardi els torns, o com en dieu en aquest fitxer, tirades. Ja des de l'inici que hi donem voltes però ens acabem de decidir. Seria simplement per guardar-ne la informació i poder-ho passar a JSON de manera molt més senzilla.

Sí, seria una classe molt simple, però podria estar bé per ajudar a entendre el codi.

miquelbofill commented 4 years ago

Potser estaria bé que anéssiu tancant algun issue (preferentment qui l'hagi obert). Trobo que en teniu massa d'oberts.

miqueldedo commented 4 years ago

Perfecte

miqueldedo commented 4 years ago

Miquel, entenc el que dius que les jugades són sobre la situació inicial, però, no entenc perquè cal que ens donguin aquesta posició inicial la qual ja es troba en el fitxer de configuracions. Tenim dues vegades la mateixa informació. Perquè quan creem una partida amb les configuracions que se'ns donen, ja posicionem les diferents peces allà on toquen en funció d'aquesta llista que ens indica l'ordre en el qual han d'estar. No acabo de veure el sentit que això torni a estar repetit.

miquelbofill commented 4 years ago

@miqueldedo, no és la mateixa informació. La situació inicial que tens en el fitxer de configuració és l’estàndard. La situació inicial que tens en el fitxer de desenvolupament pot ser diferent de l’estàndard.

A la pàgina 14 de l’enunciat es comenta el següent: “Val la pena remarcar que aquesta opció pot servir no només per continuar una partida prèviament ajornada, sinó també per jugar una partida a partir d’una certa posició inicial de les peces, a l’estil dels típics problemes d’escacs que apareixen als diaris. Notem que en aquest darrer cas (en què el fitxer haurà estat editat manualment) l’apartat del fitxer corresponent a les tirades prèvies serà buit, ja que només interessarà la posició inicial i el bàndol a qui toca tirar.”

miqueldedo commented 4 years ago

Llavors, podríem haver de carregar una partida que no tingui cap moviment, però les peces es trobin en una posició inicial diferent a la que les col·loquem nosaltres (com l'exemple que anomenes dels escacs)? Recomanaries tenir un mètode dins la classe Chess que ens permetés modificar les posicions inicials? O seria millor que se li enviés aquesta llista de posicions inicials i ella les modifiques?

miquelbofill commented 4 years ago

Llavors, podríem haver de carregar una partida que no tingui cap moviment, però les peces es trobin en una posició inicial diferent a la que les col·loquem nosaltres (com l'exemple que anomenes dels escacs)?

Sí. Exactament, aquest és el cas.

Recomanaries tenir un mètode dins la classe Chess que ens permetés modificar les posicions inicials? O seria millor que se li enviés aquesta llista de posicions inicials i ella les modifiques?

Així d’entrada no veig la necessitat de cap de les dues coses. Penso que et pots esperar a crear la partida amb les posicions inicials que toquin. Convé separar la lògica de la lectura de fitxers de la lògica del joc. “Modificar posicions inicials” és barrejar les dues coses. Et sembla coherent el que dic?

PD Ara he vist que també a la pàgina 12, on comença la descripció del fitxer de desenvolupament d’una partida, ja avisa:

Posició inicial de les fitxes. Notem que no necessàriament ha de coincidir amb la posició inicial indicada al fitxer de regles. Aquest aspecte es comenta al proper apartat.”