Come gioca un computer a scacchi?
Come ragiona un computer che gioca a scacchi?
Ho sentito che puó "vedere" massimo 5 mosse avanti e "guardando" le possibili combinazioni sceglie quella che lo porta in maggior vantaggio. Ma a questo punto mi sorgono due domande:
1) come si calcola quale dei due giocatori è in vantaggio e di quanto?
2) tiene anche conto della mossa che crede farà l'avversario?
1] oltre al punteggio materiale (che è di per sè molto facile: Q=$10$; R=$5$; B=$3$; N=$3$; K=$infty$) c'è da pensare a quello posizionale (che è ovviamente molto più complesso). Qualcuno riesce a linkarmi o spiegarmi come funziona? Ho in progetto di creare {spero insieme a voi} un programma che giochi a livelli abbastanza alti...
2] perchè se non ne tenesse conto potrebbe per esempio (stupido) mangiare con la propria Q un N protetto da un pedone avversario, nella speranza che non venga catturata. se invece tiene conto, come fa? Dato che non sa il livello dell'avversario?
Ringrazio chiunque mi risponderà e mi darà una mano.
Intanto buone vacanze
Ho sentito che puó "vedere" massimo 5 mosse avanti e "guardando" le possibili combinazioni sceglie quella che lo porta in maggior vantaggio. Ma a questo punto mi sorgono due domande:
1) come si calcola quale dei due giocatori è in vantaggio e di quanto?
2) tiene anche conto della mossa che crede farà l'avversario?
1] oltre al punteggio materiale (che è di per sè molto facile: Q=$10$; R=$5$; B=$3$; N=$3$; K=$infty$) c'è da pensare a quello posizionale (che è ovviamente molto più complesso). Qualcuno riesce a linkarmi o spiegarmi come funziona? Ho in progetto di creare {spero insieme a voi} un programma che giochi a livelli abbastanza alti...
2] perchè se non ne tenesse conto potrebbe per esempio (stupido) mangiare con la propria Q un N protetto da un pedone avversario, nella speranza che non venga catturata. se invece tiene conto, come fa? Dato che non sa il livello dell'avversario?
Ringrazio chiunque mi risponderà e mi darà una mano.
Intanto buone vacanze

Risposte
No, no, no, no, no! 
Un motore scacchistico può calcolare infinite posizioni e quindi può prevedere infinite mosse avanti, ma c'è un'unica forte limitazione data dalla memoria e dal processore del computer o del dispositivo utilizzato. In pochi secondi comunque i motori migliori calcolano almeno 13 mosse avanti, quindi sei proprio fuori strada.
1) Per quanto riguardo il calcolo del punteggio, questo dipende da motore a motore ed è una delle cose più importanti, dato che il computer andrà a scegliere la mossa che lo porterà (secondo i suoi calcoli) alla posizione migliore. Per quanto riguarda il "punteggio materiale" (come lo chiami tu) è molto semplice, si sommano i valori dei pezzi del bianco e si sottrae al risultato la somma dei valori dei pezzi del nero. Se si ottiene un numero positivo il bianco è in vantaggio materiale, se si ottiene un numero negativo il nero è in vantaggio materiale. Questo calcolo va fatto per tutte le posizioni analizzate, quindi in teoria calcolando infinite posizioni avanti è sufficiente guardare solo il materiale. Purtroppo a causa delle limitazioni del computer non si possono calcolare infinite posizioni (eccetto nei casi in cui c'è un matto forzato per esempio), quindi bisogna trovare un modo per calcolare un "punteggio posizionale". Questo modo varia parecchio da programma a programma, perché vanno considerati tantissimi parametri: controllo del centro, spazio e mobilità dei pezzi, sicurezza del re...
2) Vengono calcolate quasi tutte le mosse possibili, vengono ignorate alcune mosse che sicuramente portano un forte svantaggio. Alcuni programmi non ignorano nulla o ignorano poco, ma questo li rende lenti nel calcolo e in una partita veloce quindi rischiano di perdere molto più tempo cercando di analizzare molte mosse avanti.
1] Guarda qui. Tempo fa volevo anche io creare un motore scacchistico e avevo trovato un sito che spiegava bene e in modo estremamente semplice da capire tutto quello che riguardava il creare un motore scacchistico, purtroppo ho cambiato computer e non trovo più quel sito.
2] No, un motore scacchistico calcola il punteggio di tutte le mosse e le ordina per punteggio, per poi scegliere la mossa col punteggio più alto. Per quanto riguarda programmi con forza "limitata" semplicemente viene rallentata la velocità di calcolare posizioni o viene limitato il numero di posizioni da calcolare (o vengono usati altri metodi tipo fare apposta degli errori ogni certo numero di mosse o cose simili).
Spero sia di aiuto.
[size=85]È da un bel po' che non venivo su questo forum![/size]

Un motore scacchistico può calcolare infinite posizioni e quindi può prevedere infinite mosse avanti, ma c'è un'unica forte limitazione data dalla memoria e dal processore del computer o del dispositivo utilizzato. In pochi secondi comunque i motori migliori calcolano almeno 13 mosse avanti, quindi sei proprio fuori strada.

1) Per quanto riguardo il calcolo del punteggio, questo dipende da motore a motore ed è una delle cose più importanti, dato che il computer andrà a scegliere la mossa che lo porterà (secondo i suoi calcoli) alla posizione migliore. Per quanto riguarda il "punteggio materiale" (come lo chiami tu) è molto semplice, si sommano i valori dei pezzi del bianco e si sottrae al risultato la somma dei valori dei pezzi del nero. Se si ottiene un numero positivo il bianco è in vantaggio materiale, se si ottiene un numero negativo il nero è in vantaggio materiale. Questo calcolo va fatto per tutte le posizioni analizzate, quindi in teoria calcolando infinite posizioni avanti è sufficiente guardare solo il materiale. Purtroppo a causa delle limitazioni del computer non si possono calcolare infinite posizioni (eccetto nei casi in cui c'è un matto forzato per esempio), quindi bisogna trovare un modo per calcolare un "punteggio posizionale". Questo modo varia parecchio da programma a programma, perché vanno considerati tantissimi parametri: controllo del centro, spazio e mobilità dei pezzi, sicurezza del re...
2) Vengono calcolate quasi tutte le mosse possibili, vengono ignorate alcune mosse che sicuramente portano un forte svantaggio. Alcuni programmi non ignorano nulla o ignorano poco, ma questo li rende lenti nel calcolo e in una partita veloce quindi rischiano di perdere molto più tempo cercando di analizzare molte mosse avanti.
1] Guarda qui. Tempo fa volevo anche io creare un motore scacchistico e avevo trovato un sito che spiegava bene e in modo estremamente semplice da capire tutto quello che riguardava il creare un motore scacchistico, purtroppo ho cambiato computer e non trovo più quel sito.

2] No, un motore scacchistico calcola il punteggio di tutte le mosse e le ordina per punteggio, per poi scegliere la mossa col punteggio più alto. Per quanto riguarda programmi con forza "limitata" semplicemente viene rallentata la velocità di calcolare posizioni o viene limitato il numero di posizioni da calcolare (o vengono usati altri metodi tipo fare apposta degli errori ogni certo numero di mosse o cose simili).
Spero sia di aiuto.

[size=85]È da un bel po' che non venivo su questo forum![/size]
Grazie mille per la risposta. Considera peró questa posizione:
Pedone bianco in b2
Cavallo bianco in c3
Donna nera in c7
Tratto al nero (computer).
Se considerasse solo la propria mossa troverebbe un guadagno a fare Dxc3. Come fa a sapere cosa muoverà l'avversario? Nel esempio che ho riportato io è ovvia una risposta b2xc3, ma con una posizione più complessa la scelta della mossa variarebbe probabilmente a seconda dell'Elo del giocatore.
Un'esempio potrebbe essere questo:
Bianchi
Re b7
Pedone c2
Donna g6
Neri
Re e1
Alfiere a4
Cavallo e4
Torre f7
Tratto al bianco (computer): potrebbe pensare conveniente Dxf7 (sempre se non considera la mossa del nero). Se invece considera la mossa del nero vede che a Dxf7 seguirebbe Cd6+ che cattura la donna bianca; se invece si trova davanti un principiante probabilmente questo sarà portato a fare un Axc2. Questo probabilmente non creerebbe problemi al calcolatore sulla scelta della prima mossa, ma se, come dici tu, calcola mooolte mosse avanti il fatto che il nero giochi Axc2 piuttosto che Cd6+ cambia molto sulla scelta della combinazione. Se infatti trova una combinazione vincente pensando che l'avversario giochi correttamente, in caso di mossa "errata" dell'avversario, pottebbe essere messo in difficoltà.
Mi ricordo un esempio in cui l'uomo ha battutto un computer sfruttando la sua non-flessibilità mentale.
Pedone bianco in b2
Cavallo bianco in c3
Donna nera in c7
Tratto al nero (computer).
Se considerasse solo la propria mossa troverebbe un guadagno a fare Dxc3. Come fa a sapere cosa muoverà l'avversario? Nel esempio che ho riportato io è ovvia una risposta b2xc3, ma con una posizione più complessa la scelta della mossa variarebbe probabilmente a seconda dell'Elo del giocatore.
Un'esempio potrebbe essere questo:
Bianchi
Re b7
Pedone c2
Donna g6
Neri
Re e1
Alfiere a4
Cavallo e4
Torre f7
Tratto al bianco (computer): potrebbe pensare conveniente Dxf7 (sempre se non considera la mossa del nero). Se invece considera la mossa del nero vede che a Dxf7 seguirebbe Cd6+ che cattura la donna bianca; se invece si trova davanti un principiante probabilmente questo sarà portato a fare un Axc2. Questo probabilmente non creerebbe problemi al calcolatore sulla scelta della prima mossa, ma se, come dici tu, calcola mooolte mosse avanti il fatto che il nero giochi Axc2 piuttosto che Cd6+ cambia molto sulla scelta della combinazione. Se infatti trova una combinazione vincente pensando che l'avversario giochi correttamente, in caso di mossa "errata" dell'avversario, pottebbe essere messo in difficoltà.
Mi ricordo un esempio in cui l'uomo ha battutto un computer sfruttando la sua non-flessibilità mentale.
"kobeilprofeta":
Grazie mille per la risposta. Considera peró questa posizione:
Pedone bianco in b2
Cavallo bianco in c3
Donna nera in c7
Tratto al nero (computer).
Se considerasse solo la propria mossa troverebbe un guadagno a fare Dxc3. Come fa a sapere cosa muoverà l'avversario? Nel esempio che ho riportato io è ovvia una risposta b2xc3, ma con una posizione più complessa la scelta della mossa variarebbe probabilmente a seconda dell'Elo del giocatore.
ciao kobeil,
anch'io tempo fa avevo iniziato a preparare un programma, e avevo quasi finito la scacchiera con tutti i pezzi e pedine e annessi movimenti e regole, ma poi mi sono stancato e attualmente ho messo tutto nel cassetto.
Avevo trovato, circa 3 anni fa, una paginetta molto istruttiva e l'avevo salvata, vedo se la trovo e te la posto. Non era comunque (e ovviamente) qualcosa di esaustivo, solamente un'introduzione alle problematiche connesse a un tale tipo di programmazione.
Personalmente trovo interessante la tecnica che si basa sul criterio del minimax della teoria dei giochi, magari praticando un discreto sfoltimento in fase di analisi delle diramazioni delle varianti. Va tenuto presente infatti che il gioco degli scacchi è a informazione completa (tutta l'informazione è nota a priori).
Collegandomi al tuo discorso che ho citato sopra, se ho ben capito quello che intendi, ti faccio osservare che in errori così grossolani una macchina non può incorrere, e questo per il semplice fatto che la macchina non dovrebbe essere programmata per valutare una posizione (terminale) in cui sia essa a muovere. Il software, ammettendo che sondi ad una profondità dell'albero delle varianti pari a uno, lo farà valutando DUE semimosse: la sua e quella dell'avversario; quindi esso analizzerà sempre multipli di mosse (cioè coppie di semimosse).
Il problema legato ai limiti della profondità (stai pur sicuro che con un normale pc oltre le 5/6 posizioni non si va, mantenendo tempi ragionevoli) è che fermandosi a una certa posizione, il computer potrebbe non vedere qualcosa di interessante o minaccioso (ambedue forzatamente), ma che si manifesteranno con chiarezza solo nel proseguimento delle posizioni. A tale riguardo, ricordo che in una partita contro Deep Fritz, io avevo intuito un vantaggio decisivo compiendo un sacrificio di pezzo, mentre il software (impostato a profondità 4) rimaneva su una linea più sobria, che tuttavia portava ad una situazione di parità.
Insomma, come si suol dire, al pc manca il famoso "colpo d'occhio". Questo, almeno, per il momento. Tuttavia, sono abbastanza convinto che se si riuscisse a trovare un sistema di apprendimento diverso da quello classico basato sull'esperienza (ovvero, memorizzo una certa posizione come deleteria e, in futuro, se la ritrovo, la scarto immediatamente) allora la macchina potrebbe pure dotarsi del colpo d'occhio. Un tale sistema, a mio parere, dovrebbe consistere di un'intelligenza artificiale basata su schemi (noti). Non credo che questo sia preso in considerazione dalla teoria (ma potrei sbagliarmi). Sono convinto, inoltre, che con una capacità, per esempio, di sondare fino ad una profondità di 15 nodi, il computer sia a tutti gli effetti imbattibile: quale umano, a meno di uno studio teorico approfondito e particolareggiato a parte di una data apertura, avrebbe una tale vista?
Dal punto di vista tattico (combinazione), poi, la macchina è imbattibile (non sbaglia mai il calcolo). E per i finali? Esistono algoritmi che consentono l'esecuzione perfetta di tutti i finali (noti). Ricordo che da una famosa posizione vincibile, avendo il bianco il tratto, con la (difficile) regola delle case corrispondenti, il computer venne fuori in maniera impeccabile. Quindi!
Forse potresti provare a scaricarti i sorgenti di qualche gioco di scacchi ( ad esempio Knights che è open source, anche se sicuramente non si tratta di un motore scacchistico avanzato, potrebbe essere un buon modo per capire come funziona)
Non è così per i computer con ELO più basso. Infatti i computer con ELO sotto 1100 "mangiano a tutti i costi" alfieri o torri, anche se successivamente questo può portare a un grande svantaggio o addirittura alla sconfitta del computer, anche in poche mosse.
Consideriamo per esempio questa situazione:

Il computer (blu e di ELO 1020) cattura con la regina l'alfiere in b5, ma il rosso sposta il cavallo (Nc7+) in modo che possa catturare la regina.
Consideriamo anche questa partita:


Il computer (blu e di ELO 1040) subisce scacco matto nonostante due cavalli e un pedone di vantaggio.
I computer, oltre a questo, iniziano sempre allo stesso modo e questo a volte scoccia.
Attenzione: per vedere le immagini intere salvatele
Consideriamo per esempio questa situazione:

Il computer (blu e di ELO 1020) cattura con la regina l'alfiere in b5, ma il rosso sposta il cavallo (Nc7+) in modo che possa catturare la regina.
Consideriamo anche questa partita:


Il computer (blu e di ELO 1040) subisce scacco matto nonostante due cavalli e un pedone di vantaggio.
I computer, oltre a questo, iniziano sempre allo stesso modo e questo a volte scoccia.
Attenzione: per vedere le immagini intere salvatele
[ot]@Valerio7342
Ciao, se vuoi, invece di inserire direttamente le immagine nel messagio, puoi allegarle tramite l'apposito box che trovi sotto l'editor d'inserimento dei messaggi (linguetta
Un'alternativa ancora migliore sarebbe quella di inserire la partita in formato PGN, che mi pare il tuo programma di scacchi ti permette di vedere, nel messaggio usando il BBCode
ottieni automaticamente:
[pgn][Event "Matematicamente.it Scacchi game"]
[Site "www.matematicamente.it"]
[Date "2014.02.16"]
[Round "10"]
[White "kobeilprofeta"]
[Black "stan"]
[Result "1-0"]
1. e4 e5 2. Nf3 Nf6 3. Bc4 d6 4. Ng5 d5 5. exd5 Nxd5
6. Qf3 Be6 7. O-O c6 8. Re1 Bd6 9. d4 exd4 10. Qxf7+[/pgn]
@everybody Non ingannatevi, penso di essere un po' più forte di quel che sembra da questa partita.
[/ot]
Ciao, se vuoi, invece di inserire direttamente le immagine nel messagio, puoi allegarle tramite l'apposito box che trovi sotto l'editor d'inserimento dei messaggi (linguetta
Invia allegato).
Un'alternativa ancora migliore sarebbe quella di inserire la partita in formato PGN, che mi pare il tuo programma di scacchi ti permette di vedere, nel messaggio usando il BBCode
pgn. Ad esempio scrivendo nel messaggio
[pgn] [Event "Matematicamente.it Scacchi game"] [Site "www.matematicamente.it"] [Date "2014.02.16"] [Round "10"] [White "kobeilprofeta"] [Black "stan"] [Result "1-0"] 1. e4 e5 2. Nf3 Nf6 3. Bc4 d6 4. Ng5 d5 5. exd5 Nxd5 6. Qf3 Be6 7. O-O c6 8. Re1 Bd6 9. d4 exd4 10. Qxf7+ [/pgn]
ottieni automaticamente:
[pgn][Event "Matematicamente.it Scacchi game"]
[Site "www.matematicamente.it"]
[Date "2014.02.16"]
[Round "10"]
[White "kobeilprofeta"]
[Black "stan"]
[Result "1-0"]
1. e4 e5 2. Nf3 Nf6 3. Bc4 d6 4. Ng5 d5 5. exd5 Nxd5
6. Qf3 Be6 7. O-O c6 8. Re1 Bd6 9. d4 exd4 10. Qxf7+[/pgn]
@everybody Non ingannatevi, penso di essere un po' più forte di quel che sembra da questa partita.

La partita contro ELO 1020 era un doppio inganno, infatti il blu non poteva muovere la regina perché così il Re poteva essere catturato.
Ve la cito:
[pgn][Event "-"]
[Site "-"]
[Date "2014.04.01"]
[Round "33"]
[White "Valerio7342"]
[Black "ELO 1020"]
[Result "1-0"]
1. d4 d5 2. e3 c5 3. dxc5 f6 4. h3 Bf5 5. g4 Bg6 6. Nf3 Qd7 7. Nc3 e5 8. Nxd5 Bxc5 9. Bb5 Qxb5 10. Nc7+ Kf8 11. Nxb5 Bf7 12. Nc7 e4 13. Nxa8 exf3 14. c3 Nc6 15. b4 Nxb4 16. cxb4 Bxb4+ 17. Bd2 Bd6 18. Rb1 Bd5 19. a3 Kf7 20. Bb4 Bxb4+ 21. axb4 Ba2 22. Rc1 Kf8 23. Rc8+ Ke7 24. Qd8+ Ke6 25. Rc7 g6 26. Rxb7 Bd5 27. Rxa7 Bxa8 28. Qxa8 f5 29. gxf5+ gxf5 30. Ra5 Kd7 31. Ra6 Ke7 32. Qb7+ Kd8 33. Ra8+[/pgn]
Ricordate però che nel mio programma non si può fare Copia e Incolla, quindi ho dovuto ricopiare tutto.
Ve la cito:
[pgn][Event "-"]
[Site "-"]
[Date "2014.04.01"]
[Round "33"]
[White "Valerio7342"]
[Black "ELO 1020"]
[Result "1-0"]
1. d4 d5 2. e3 c5 3. dxc5 f6 4. h3 Bf5 5. g4 Bg6 6. Nf3 Qd7 7. Nc3 e5 8. Nxd5 Bxc5 9. Bb5 Qxb5 10. Nc7+ Kf8 11. Nxb5 Bf7 12. Nc7 e4 13. Nxa8 exf3 14. c3 Nc6 15. b4 Nxb4 16. cxb4 Bxb4+ 17. Bd2 Bd6 18. Rb1 Bd5 19. a3 Kf7 20. Bb4 Bxb4+ 21. axb4 Ba2 22. Rc1 Kf8 23. Rc8+ Ke7 24. Qd8+ Ke6 25. Rc7 g6 26. Rxb7 Bd5 27. Rxa7 Bxa8 28. Qxa8 f5 29. gxf5+ gxf5 30. Ra5 Kd7 31. Ra6 Ke7 32. Qb7+ Kd8 33. Ra8+[/pgn]
Ricordate però che nel mio programma non si può fare Copia e Incolla, quindi ho dovuto ricopiare tutto.
Ecco anche la partita contro ELO 1040:
[pgn][Event "-"]
[Site "-"]
[Date "2014.04.01"]
[Round "33"]
[White "Valerio7342"]
[Black "ELO 1040"]
[Result "1-0"]
1. e4 c6 2. d4 d5 3. exd5 Qxd5 4. Nc3 Qd8 5. d5 Nf6 6. dxc6 Qd6 7. cxb7 Bxb7 8. Nb5 Qe5+ 9. Be2 Bxg2 10. Qd3 Bxh1 11. Qc3 Qxh2 12. Nc7+ Kd8 13. Nxa8 Qxg1+ 14. Bf1 Bxa8 15. Be3 Bg2 16. Rd1+ Ke8 17. Qc8+[/pgn]
[pgn][Event "-"]
[Site "-"]
[Date "2014.04.01"]
[Round "33"]
[White "Valerio7342"]
[Black "ELO 1040"]
[Result "1-0"]
1. e4 c6 2. d4 d5 3. exd5 Qxd5 4. Nc3 Qd8 5. d5 Nf6 6. dxc6 Qd6 7. cxb7 Bxb7 8. Nb5 Qe5+ 9. Be2 Bxg2 10. Qd3 Bxh1 11. Qc3 Qxh2 12. Nc7+ Kd8 13. Nxa8 Qxg1+ 14. Bf1 Bxa8 15. Be3 Bg2 16. Rd1+ Ke8 17. Qc8+[/pgn]
E come diceva kobeilprofeta in "Questioni tecniche", i computer con ELO più basso non giocano in maniera costante.
Lo dimostra questa partita contro ELO 1120, in cui alla fine il computer ha fatto una serie di mosse dubbie, come 47 Bc5?, 53. Kf7? e 60. Bf8?.
[pgn][Event ""]
[Site ""]
[Date "2014.02.16"]
[Round "61"]
[White "Valerio7342"]
[Black "ELO 1120"]
[Result "1-0"]
1. e4 c6 2. d4 d5 3. exd5 cxd5 4. Bb5+ Bd7 5. Bxd7+ Nxd7 6. Nc3 e6 7. Nb5 Be7 8. Bd2 Ngf6 9. Kf1 Kf8 10. Qe1 Qe8 11. Nc7 Qd8 12. Nxa8 Qxa8 13. Nf3 Kg8 14. Ba5 Ne4 15. Qc1 Bd6 16. Nd2 Ndf6 17. Nxe4 Nxe4 18. f3 Nf6 19. Qe3 b6 20. Be1 g6 21. Rd1 a5 22. Rd3 b5 23. Rc3 h5 24. Qd3 Qe8 25. Rb3 b4 26. Qa6 a4 27. Rd3 Qd7 28. b3 Qc7 29. bxa4 Qxc2 30. Re3 Be7 31. Qb6 Qxa4 32. Re2 Kf8 33. Rd2 Kg8 34. Bf2 Kh7 35. Ke2 Rg8 36. Rc1 Qa3 37. Ra1 Qc3 38. Rad1 Rc8 39. Rd3 Qc2+ 40. R3d2 Qf5 41. Rb2 Kg8 42. Bh4 Rc3 43. Bxf6 Qxf6 44. Rd3 Rc1 45. Rd1 Rc8 46. Rdd2 Rc1 47. Rd1 Bc5 48. Qb8+ Bf8 49. Rxc1 Qxd4 50. Rb3 f5 51. Rc8 Qf6 52. h3 Qe7 53. g4 Kf7 54. gxh5 gxh5 55. Rc7 Qxc7 56. Qc7+ Be7 57. Kd3 Kf8 58. Kd4 Kf7 59. Ke5 Ke8 60. Kxe6 Bf8 61. Qc8+[/pgn]
Lo dimostra questa partita contro ELO 1120, in cui alla fine il computer ha fatto una serie di mosse dubbie, come 47 Bc5?, 53. Kf7? e 60. Bf8?.
[pgn][Event ""]
[Site ""]
[Date "2014.02.16"]
[Round "61"]
[White "Valerio7342"]
[Black "ELO 1120"]
[Result "1-0"]
1. e4 c6 2. d4 d5 3. exd5 cxd5 4. Bb5+ Bd7 5. Bxd7+ Nxd7 6. Nc3 e6 7. Nb5 Be7 8. Bd2 Ngf6 9. Kf1 Kf8 10. Qe1 Qe8 11. Nc7 Qd8 12. Nxa8 Qxa8 13. Nf3 Kg8 14. Ba5 Ne4 15. Qc1 Bd6 16. Nd2 Ndf6 17. Nxe4 Nxe4 18. f3 Nf6 19. Qe3 b6 20. Be1 g6 21. Rd1 a5 22. Rd3 b5 23. Rc3 h5 24. Qd3 Qe8 25. Rb3 b4 26. Qa6 a4 27. Rd3 Qd7 28. b3 Qc7 29. bxa4 Qxc2 30. Re3 Be7 31. Qb6 Qxa4 32. Re2 Kf8 33. Rd2 Kg8 34. Bf2 Kh7 35. Ke2 Rg8 36. Rc1 Qa3 37. Ra1 Qc3 38. Rad1 Rc8 39. Rd3 Qc2+ 40. R3d2 Qf5 41. Rb2 Kg8 42. Bh4 Rc3 43. Bxf6 Qxf6 44. Rd3 Rc1 45. Rd1 Rc8 46. Rdd2 Rc1 47. Rd1 Bc5 48. Qb8+ Bf8 49. Rxc1 Qxd4 50. Rb3 f5 51. Rc8 Qf6 52. h3 Qe7 53. g4 Kf7 54. gxh5 gxh5 55. Rc7 Qxc7 56. Qc7+ Be7 57. Kd3 Kf8 58. Kd4 Kf7 59. Ke5 Ke8 60. Kxe6 Bf8 61. Qc8+[/pgn]
Per curiosità che programma di scacchi usi?
Mastersoft Chess, con ELO da 800 a 2780.
Puoi scegliere fra decine di stili dei pezzi e colori della scacchiera.
Puoi scegliere fra decine di stili dei pezzi e colori della scacchiera.