|
||||
|
Download
BRAMA_051204 |
||||
| Note. Iniziato l’1/11/04 con l’intento di effettuare un porting dal Borland Turbo Pascal al linguaggio C del mio vecchio motore allo scopo di interfacciarlo con Winboard ed per l'occasione imparare il C. Come spesso sucede quello che doveva essere un porting si e trasformato in una rieditazione totale.
Caratteristiche: scritto in linguaggio C, Winboard compatibile, rappresentazione 0..63, esegue l’alphabeta(fiù..) aiutato da un minimo di ordinamento delle mosse in fase di generazione. Insomma ha una struttura essenziale Prossimo obbiettivo di lunga durata: Mi piacerebbe realizzare un motore bitboard con interfaccia in Java. (seehhh) |
||||
Alcune indicazioni per chi desidera elaborare un programma di scacchi.La quasi totalità dei motori di gioco scacchistici è costituito almeno dalle seguenti parti ideali o reali di codice:
Altra cosa e il modello di rappresentazione della scacchiera e dei pezzi. E' appunto modello di rappresentazione della scacchiera e di pezzi grazie al quale è possibile ad esempio verificare lo status di una casella: se è occupata, da che colore , da che pezzo. Nel mio primo programma per semplicita avevo usato un array bidimensionale 8*8 che è quanto di peggio vi possa essere per l’efficienza. Normalmente si usa un array unidimensionale di 64 elementi 0..63 che in fin dei conti è altrettanto semplice ma molto, moltissimo piu efficiente. Se osservate la rappresentazione binaria dei numeri 0..63 vedrete che dato un numero di casella il numero di colona è espresso dai primi 3 bit , il numero di riga dai 3 successivi. Quindi se il linguaggio è il C per ricavare i numeri di riga e colonna dal numero della casella potete usare le macro: #define DACASAACOL(CASA) (CASA & 7) #define DACASAARIGA(CASA) (CASA >> 3) Un’ altro modello di rappresentazione e la bitboard. Consiste nell’usare variabili di 64 bit dove ogni bit rappresenta una casa. In alcune fasi consente di risparmiare molti cicli macchina ma non deve essere molto immediato da gestire per un programmatore alle prime armi. Uno scopo fondamentale della programmazione per scacchi è quello di divertirsi però attenzione perche quando il programma inizia ad acquistare un certa consistenza potreste ritrovarvi a pagare delle scelte iniziali prese con troppa leggerezza come la rappresentazione 8*8 del mio vecchio programma. Conviene dare il meglio dell’efficienza fin dall’inizio per non essere costretti a ritornare piu volte sui propri passi. Spero che queste poche righe servano a chi voglia farsi un'idea della programmazione per scacchi, se invece avete bisogno di un vero tutorial affidateva a LaMoSca . |
||||
|
Se volete un'interfaccia grafica.
Il modo più semplice ma non il più proprio per inetrfacciare BRAMA a Winboard (dopo avere scaricato ed installato winboard nel vs. pc ovviamente) è quello di copiare BRAMA direttamente nella cartella in cui si è installato Wimboard. Es: "C:/Programmi/Winboard". Quando avviate Winboard dovrete quindi scrivere al posto di GnuChess (il motore di default) il nome dell'eseguibile di Brama. |
||||
|
||||