Riproduzione in console application del gioco degli scacchi
I pezzi bianchi inziano per 1XX, quelli neri con 2XX, mentre 999 rappresenta una casella non occupata.
I pezzi sono identificati da un numero:
50 re
40 regina
30 torre
20 alfiere
10 cavallo
01 pedone
Esempio: il 150 è il re bianco, il 240 la regina nera
La scacchiera è rappresenta da una matrice di interi 8x8 che viene riempita con il valore dei pezzi quando viene inizializzata. Quando si decide di muovere un pezzo verrà richiesta la posizione x,y del pezzo nella scacchiera e le coordinate di destinazione del pezzo dest_x,dest_y. Una funzione mio(Mat,x,y,pezzo) verifica che il pezzo che si sta muovendo appartiene al giocatore. Potrebbe infatti succedere che il bianco inserisca nelle coordinate del pezzo da muovere un pezzo nero!
Prima di muovere un pedone, è importante valutare il caso in cui una qualsiasi figura bianca o nera si trovi di fronte ad esso, impedendone il movimento in avanti. In questo caso, il pedone può essere mosso in diagonale solo se è presente un pezzo avversario nelle caselle adiacenti (x+1,y+1) o (x+1,y-1). Per verificare la presenza di un pezzo nemico nelle caselle, è necessario utilizzare un algoritmo. Solo dopo aver verificato la presenza del pezzo avversario, il pedone può essere mosso in diagonale per catturarlo.
Date X,Y come coordinate di posizione di un alfiere, questo potrà muoversi soltanto se le sue diagonali sono libere fino al punto di destinazione:
il suo movimento su due diagonali viene scomposto in quattro diagonali di movimento, dividendo quindi ogni diagonale in due e avendo x,y come punto di riferimento.