Home

LaMoSca v0.04

L'analisi su più livelli

Obiettivo

In questa versione del programma si inizia a completare l'analisi della correttezza delle mosse generate verificando che il re non venga lasciato sotto scacco. Per questa analisi, oltre alle mosse per la posizione corrente vengono anche generate le mosse per la posizione futura, in modo da verificare che il re non sia tra le case destinazione delle mosse dell'avversario.

Per lo sviluppo complessivo del programma,  questa analisi su due livelli rappresenta la base per la ricerca delle mosse ottime tramite più livelli di analisi di mosse e risposte.

Il codice

StackIn questa versione, lo stack contiene due livelli di mosse: la lista delle mosse per chi deve giocare e, per ciascuna di queste, la lista delle possibili risposte dell'avversario. L'indirizzo di partenza dello stack e gli estremi di ciascuna delle due liste vengono memorizzati tramite puntatori.

Mentre la prima lista rimane invariata fino a che non si cambia lato di gioco, la seconda lista viene completamente rigenerata al cambiare della scelta sulla mossa corrente.

Per completare il supporto dei comandi inviati al motore da WinBoard, per il lato dell'avversario viene introdotto anche il check sintattico per mosse speciali quali arrocco e promozioni, mosse che per il momento non vengono ancora generate per il programma.

L'esecuzione del programma

Eseguendo il programma con il log abilitato, si può vedere che per l'apertura viene generata la solita sequenza di mosse:

Livello 1: b8a6 b8c6 g8f6 g8h6 a7a6 a7a5 b7b6 b7b5 c7c6 c7c5 d7d6 d7d5 e7e6 e7e5 f7f6 f7f5 g7g6 g7g5 h7h6 h7h5

Scegliendo (a caso) per il programma la mossa "b8c6", viene generata la sequenza delle possibili risposte:

Livello 2: e4e5 a2a3 a2a4 b2b3 b2b4 c2c3 c2c4 d2d3 d2d4 f2f3 f2f4 g2g3 g2g4 h2h3 h2h4 b1a3 b1c3 d1e2 d1f3 d1g4 d1h5 e1e2 f1e2 f1d3 f1c4 f1b5 f1a6 g1f3 g1h3 g1e2

Non essendo il re in nessuna casa destinazione, la mossa di livello 1 è valida.

Download

LaMoSca04.zip (6.39 k)

Da completare

  • generazione di arrocco, promozioni, catture en-passant;
  • controllo di situazioni di patta;
  • analisi delle risposte dell'avversario.

Da fare

  • valutazione delle posizioni.

Link


Indietro Indice Avanti