[Python] R: R: La matrice immortale.

Gabriele Battaglia iz4apu a libero.it
Mer 9 Lug 2014 09:23:55 CEST


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. 



Maggiori informazioni sulla lista Python