Marco Beri: In realtà io la scacchiera non la creerei proprio.

Mi bastano i 32 pezzi e le relative posizioni.

La scacchiera serve solo visivamente per l'utente, quindi andrebbe solo
disegnata all'uopo e non usata per il motore interno.

Secondo me, ovviamente :-)

GB: ciao marco.
In realtà, la scacchiera, intesa come una matrice 8x8, nei programmi di scacchi è necessaria. Di più, per una singola partita, i motori scacchistici creano molteplici scacchiere su cui memorizzano non solo la posizione dei pezzi, ma anche i valori di ogni casa in base agli attacchi ed alle difese che questa riceve dai pezzi nemici e da quelli amici. Ogni casa poi, ha dei valori fissi che si sommano o si sottraggono a quelli variabili dati dai pezzi, che dipendono dalla sua posizione, più è centrale e più è ambita, e dalla vicinanza del re (entropia del re). Quindi, per valutare la prossima mossa, il software deve poter provare le combinazioni su diverse rappresentazioni numeriche della stessa scacchiera e tracciare un albero di quelle che gli sembrano più convenienti. Poi taglierà i rami che sembrano portare a svantaggi, ed approfondirà quelli buoni creando altri rami e sottorami di ricerca, tutto questo, sfruttando il tempo massimo che, in base alle impostazioni di gioco, gli viene concesso per ogni possibile mossa. Una considerazione più generale. Alcuni amici programmatori affermano che Python non sia la scelta migliore, per un motore di scacchi, ma sia di gran lunga preferibile il C. In un motore di scacchi, il fattore determinante è la velocità. Come viene poi visualizzata la scacchiera, sono facezie, in genere i motori prevedono un protocollo (UCI) o (WinBoard) per comunicare con interfacce grafiche che si occupano della visualizzazione, loro sono dediti solo al calcolo. Uno dei motori più forti al mondo, ed anche gratuito (in una delle sue versioni), si chiama Houdini 15A, è semplicemente devastante, riesce a raddrizzare delle situazioni disperate, non molla mai!
:)

Tu: P.s. Perdonatemi il "visivamente", credo di essermi spiegato comunque.

GB: la lingua italiana è universale, non può piegarsi alle esigenze dei singoli, altrimenti non sarebbe più un codice condiviso. Questo "problema" degli aggettivi o dei vocaboli da usare o non usare, è una cosa che solo i vedenti si pongono: nella mia vita non mi è mai venuto in mente, ne ho mai sentito altri ciechi lamentarsi per un riferimento alla vista da parte di chi parla con noi. Daltronde, guarda che storia, io in questa lista dico cose come programmo, scrivo una funzione, studio una classe... :) dovrei essere linciato allora. :) Ciao.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a