# Crafty

Crafty è un programma di scacchi scritto da Robert Hyatt dell'Università dell'Alabama. Discende direttamente da Cray Blitz, vincitore di due edizioni del WCCC nel 1983 e nel 1986.

## Caratteristiche tecniche

L'implementazione della scacchiera è basata sulle bitboard, strutture a 64-bit. Il codice sorgente, scritto interamente in linguaggio C, è disponibile gratuitamente, e qualunque appassionato può scaricarlo dalla rete.
Il programma fa uso di ricerca negascout, euristiche killer, valutazione statica degli scambi, ricerca quiescente, potatura alfa-beta, tabelle di hash, cache di valutazione, estensioni selettive, ricerca ricorsiva di mosse nulle e molte altre tecniche (cf. manuale).
Crafty, utilizzando il protocollo XBoard, può essere usato sia in modalità ad interfaccia a riga di comando e sia, più agevolmente, tramite alcune interfacce grafiche quali XBoard/WinBoard (software libero) ed Arena (freeware).
Il programma è incluso nel test di benchmark SPEC-CPU. È inoltre presente come motore aggiuntivo in Fritz e in Pocket Fritz.

## Funzionalità

Oltre a funzionalità disponibili anche in altri programmi scacchistici, Crafty è in grado, tramite il comando annotate, di analizzare una partita già giocata, trascritta in formato PGN, ed individuare le mosse del Bianco, del Nero o di entrambi per le quali il programma ha trovato alternative migliori.
Inoltre, con il comando annotateh, se è presente la cartella bitmaps prelevabile dal sito, l'output dell'analisi è prodotto in formato HTML con i grafici delle posizioni critiche individuate.

## Forza di gioco

Crafty è un motore scacchistico molto potente: raggiunge un punteggio Elo di circa 2600 su un Athlon 1.2 GHz con 256MB di RAM .
Nel World Computer Chess Championships del 2004 Crafty si è piazzato quarto con un punteggio pari a quello del terzo classificato, Fritz 8.

## Evoluzione del programma

Crafty è in continua evoluzione. Nel codice sorgente, scaricato dalla rete, all'interno del modulo main.c sono descritte tutte le modifiche apportate al programma dalla versione 1.0 alla più recente 20.14 (agosto 2006)
Attualmente il suo sviluppo è orientato in tre direzioni:
* - supporto di computer multiprocessore;
* - implementazione della conoscenza scacchistica contenuta nel programma;
* - miglioramento delle strategie di ricerca per analizzare più profondamente le posizioni di gioco che lo richiedono.
Il frequente aggiornamento del programma e l'utilizzo di algoritmi sperimentali possono, a volte, come precisa lo stesso Hyatt, ridurre la forza di gioco di una nuova versione rispetto alla precedente.

## Edizioni speciali e compilazioni del codice sorgente

Sono disponibili edizioni speciali, CraftySE, che permettono un grande numero di impostazioni. Usate con repertori di aperture, funzioni di apprendimento posizionale e database di finali, possono giocare con uno stile più umano. Questo rende Crafty più popolare.
Nel sito di Bryan Hofmann, indicato nel Collegamenti esterni, sono disponibili compilazioni dell'ultima versione di Crafty, ottimizzate per diversi tipi di processore, compilazioni di vecchie versioni ed una edizione modificata del programma denominata Cito che ha una maggiore velocità di ricerca (numero di posizioni esaminate al secondo).