Home



Acqua Chess Engines
Un motore scacchistico sperimentale




Acqua è un Chess Engine, ossia un motore scacchistico, scritto in linguaggio Harbour. La sua forza di gioco è molto bassa e ciò può ritornare utile ai principianti alle prime armi, che vogliano cimentarsi in una partita a scacchi contro il computer. Per il suo utilizzo occorre usare un'interfaccia GUI come, ad esempio, Arena, Tarrash, Crafty, ecc. Un Chess Engine, infatti, è un programma che può solo analizzare una determinata posizione scacchistica. Si basa su una applicazione "a console" che necessita di un'interfaccia GUI, con la quale il motore comunica, tramite il protocollo UCI. In teoria, si potrebbe usare solo l'engine, ma occorrebbe conoscere i comandi più importanti dell'Universal Chess Interface.





Linguaggio di programmazione utilizzato: Harbour
 




Nome del motore
Acqua
Ultima versione
(ver. 20160918)
Autore
Giovanni Di Maria
Licenza
Freeware
Righe di programma
2449
Elo attuale ufficiale G-Sei
844
Protocollo UCI
Book
No
Tablebase
No
Ponder
No
Data primo rilascio 7 maggio 2016
Data ultimo rilascio 18 settembre 2016
Linguaggio di programmazione Harbour
Sorgenti rilasciati? Si
Sistema operativo
Windows
Note Forza di gioco molto debole. Ideale per bambini
Contro chi può vincere?
Acqua batte nel 98% dei casi i Random Mover,
nel 2% patta perché ancora non conosce
bene i metodi per lo scacco matto
Url G-Sei
http://www.g-sei.org/acqua/




I progressi di Acqua Chess Engine nel tempo



Link alla scheda di Acqua (by G-Sei)





Numero delle linee di codice di programma nel tempo




Giovanni Di Maria

Pensieri...

Ed ecco alcuni strani pensieri, ipotesi matematiche, congetture e pazze idee di Giovanni Di Maria sugli Scacchi, volutamente provocatorie che, sicuramente, faranno sobbalzare e inorridire gli scacchisti esperti e i programmatori di Chess Engines:
  • La Patta non esiste, vince sempre un colore, ma ancora oggi non si sa quale...
  • E' inutile cercare nella profondità delle mosse: esiste sempre una migliore risposta ad ogni mossa dell'avversario, senza la necessità di esaminare le varianti (ply 1).
  • La mossa corretta può essere determinata mediante calcoli matematici, senza che l'Engine o il Giocatore conosca le regole del gioco. Purtroppo, a tutt'oggi, tali formule sono oscure all'Uomo.
  • Gli scacchi si possono paragonare al gioco dei fiammiferi Nim o Marienbad, ma con un'estensione enormemente maggiore e una immensità quasi infinita (mi scusino gli Scacchisti).

F.A.Q.


Che tipo di programma è "Acqua"?
Acqua è un Chess Engine, ossia un programma che analizza una determinata posizione scacchistica ricevuta in input. Il motore utilizza il protocollo UCI. Si tratta di un'applicazione "a console" e per il suo funzionamento occorre utilizzare un'interfaccia grafica (GUI) come, ad esempio, Arena, Tarrash, Crafty.

Chi lo può utilizzare per il massimo divertimento?
Dal momento che Acqua gioca con una forza molto bassa, può essere utilizzato dai principianti e, soprattutto, dai bambini che giocano da poco tempo e conoscono appena le regole fondamentali. Il debole gioco di Acqua darà loro molte possibilità di successo.


Quanto costa?
Acqua è un prodotto freeware e rimarrà sempre gratuito.

Perchè il nome del Chess Engine è Acqua?
Per tanti motivi:
  1. Perchè è scritto con il linguaggio Harbour, che in inglese significa "porto";
  2. Perchè fa acqua da tutte le parti;
  3. Perchè batterlo è facile come bere un bicchier d'acqua;
  4. Perchè questo engine si perde spesso in un bicchiere d'acqua;
  5. Perchè si trova spesso in cattive acque;
  6. Perchè il codice e i metodi algoritmici utilizzati sono semplici e puri come l'acqua;
  7. Perchè in Russia, spesso i giocatori disputano partite e tornei nell'acqua ghiacciata;
  8. Perchè il gioco degli Scacchi è prezioso come l'Acqua.

Quali interfacce grafiche sono state provate con successo con Acqua?

  • Arena Chess GUI 3.5.1;
  • Crafty Chess Interface;
  • Lucas Chess;
  • Tarrasch Chess GUI.

Perchè è stato utilizzato Harbour come linguaggio di programmazione?
Perchè Harbour è un linguaggio abbastanza semplice da imparare e, soprattutto, ad altissimo livello. Questo si traduce nella scrittura di algoritmi e procedure molto complesse, utilizzando poche righe di codice. Harbour permette di gestire in maniera sicura e semplice gli Array e i Database, entrambi utilissimi per la memorizzazione degli stati della scacchiera.

Con quale criterio Acqua sceglie la miglior mossa, a ply 1?
La mossa da eseguire è selezionata utilizzando il metodo del Bonus-Malus. Per ogni mossa possibile dell'engine, viene assegnato un valore (positivo o negativo) per l'effetto che la mossa stessa produce. La somma di parametri diversificati determina la mossa migliore da effettuare. Ad esempio, esporre la propria Donna sotto la minaccia avversaria determina una certa penalità, la cattura di una Torre avversaria premia con alcuni punti, una mossa di avvicinamento al Re avversario regala altri valori, e così via. Molti criteri devono essere ancora implementati.

Quale livello di profondità di ricerca nelle mosse raggiunge Acqua?
Secondo le regole generali del progetto, Acqua si limita alla ricerca della migliore mossa a ply 1. Al momento non sono previste creazioni di alberi delle mosse.

Quali sono le regole generali del progetto Acqua e i suoi stati attuali?
Al momento, i criteri di lavorazione di Acqua sono quelli riportati di seguito. Potrebbero subire, ovviamente, delle modificazioni, se le competenze acquisite sulla programmazione di un C.E. dovessero aumentare.

  • La miglior mossa di Acqua è determinata a ply 1;
  • Alcune mosse "migliori" si possono calcolare matematicamente;
  • Le rappresentazioni di scacchiera sono effettuate tramite matrice bidimensionale;
  • Non è richiesta ne' potenza di elaboratore ne' velocità esecutiva. La mossa è dedotta in modo quasi istantaneo;
  • Le mossa candidate risiedono in un DBF in Ram;
  • Ad ogni mossa sono attribuiti dei bonus e malus che ne decretano la bontà;
  • Per calcolare gli effetti della mossa, essa è "simulata" su una seconda scacchiera;
  • Al momento la promozione avviene solo con la Donna;
  • Al momento Acqua non sa arroccare ne' catturare En Passant, ma li riconosce dall'avversario;
  • La gestione delle case sotto controllo avviene con una matrice;
  • Acqua sa effettuare il matto in una mossa, solo se il Re avversario è solo sulla scacchiera;
  • Ai fini della bontà della mossa, vengono considerati la distanza dei pezzi dal Re e la strada percorsa.

Cosa fare se si dovesse scoprire un "bug" nel programma?
Se si dovessero riscontrare malfunzionamenti o strani comportamenti nel motore scacchistico Acqua, si può contattare l'autore all'indirizzo elektrosoft@tiscali.it oppure all'indirizzo calimero22@yahoo.it. Grazie






...dedicato a mio padre che mi ha insegnato il gioco degli scacchi quando ero bambino