Matrice bidimensionale di interi, viene dimensionata a 8x8
righe e colonne, ogni elemento della matrice memorizza un intero
che codifica il pezzo contenuto nella casella corrispondente.
Controlla se il valore e' peggiore della valutazione di quella
che finora e' la contromossa peggiore (migliore per l'avversario),
memorizzata in peggiorContromossa.
Controlla se muovere dalla casella c1 alla casella c2 e' verso
avanti, cioe' verso la sponda avversaria della scacchiera, per il
giocatore del colore dato.
Sotto-classe di Scacchiera, aggiunge informazioni e metodi
riguardanti il movimento dei pezzi: direzioni possibili di movimento,
controllo se una mossa sia possibile, generazione delle mosse
possibili ecc.
Questa classe rappresenta una mossa, ha una lista di caselle toccate
dal pezzo che si muove (di cui la prima e' la casella da cui parte
e l'ultima e' la casella dove va a finire) e una lista di caselle
corrispondenti alle posizioni delle pedine mangiate.
Questa classe rappresenta la scacchiera come situazione a riposo,
la sua sottoclasse Gioco definira' anche come si possono muovere
i vari pezzi presenti sulla scacchiera.
La scacchiera ha 8x8 caselle alterate bianche e nere.
Funzione utile per debug, stampa la tastiera in formato testo,
preceduta da un titolo.
I vari pezzi sono rappresentati dai seguenti casatteri:
b=pedina bianca, n=pedina nera, B=dama bianca, N=dama nera.
Mette la scacchiera nello stato iniziale: le 12 pedine del giocatore
nero stanno sulle caselle nere delle prime tre righe (cioe' quelle in
alto), le 12 pedine del giocatore bianco stanno sulle caselle nere
delle ultime tre righe (cioe' quelle in basso).
Questa classe contiene utilita' per decidere la mossa migliore
tra quelle possibili.
Ogni situazione di scacchiera ha, dal punto di vista di un giocatore,
una valutazione numerica che si calcola contando il numero di pedine
e dame sue e avversarie, e contando se eventualmente la partita
e' stata vinta da lui o dall'avversario.
Una mossa e' valutata nel modo seguente: si simula la mossa,
si simulano tutte le possibili contromosse avversarie,
si considera la situazione peggiore in cui ci si potrebbe
trovare (dopo questa mossa e la contromossa avversaria).