Scrivere chess engine


Questa pagina ha una gerarchia - Pagina madre:Programmazione

Home Forum Programmazione Scrivere chess engine

Questo argomento contiene 7 risposte, ha 4 partecipanti, ed è stato aggiornato da  marco belli 5 anni, 1 mese fa.

Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
  • Autore
    Articoli
  • #7716
    calimero22
    calimero22
    Membro

    Ciao ragazzi,
    Vi prego, un piccolo aiuto morale.
    Col protocollo UCI proprio non ci vado d’accordo.
    Uso lo I/O bufferizzato e il mio engine comunica con la GUI.
    Mi potete dire se a livello di logica e’ OK ?
    Al momento voglio solo che il Bianco (uomo) muova 1.d4 e il mio engine risponda con 1… d5.
    Il linguaggio è Harbour ma mi interessa SOLO se la logica è OK.

    DO WHILE .T.
    stringa := FReadStr( 0, 256 )
    //—————————————————–
    IF Lower( left(stringa,4) ) == “quit” .and. len(stringa)==6
    RETURN NIL
    ENDIF
    //—————————————————–
    IF Lower( left(stringa,3) ) == “uci” .and. len(stringa)==5
    messaggio( “id name Calimero Chess 1.2” )
    messaggio( “id author Giovanni Di Maria” )
    messaggio( “uciok” )
    ENDIF
    //—————————————————–
    IF Lower( left(stringa,10) ) == “ucinewgame” .and. len(stringa)==12
    ENDIF
    //—————————————————–
    IF Lower( left(stringa,7) ) == “isready” .and. len(stringa)==9
    messaggio( “readyok” )
    ENDIF
    //—————————————————–
    IF Lower( left(stringa,28) ) = “position startpos moves d2d4”
    messaggio(“info currmove d7d5”)
    messaggio(“bestmove d7d5”)
    ENDIF
    ENDDO

    FUNCTION messaggio( stringa )
    OutStd( stringa + Chr( 13 ) + Chr( 10 ) )
    RETURN NIL

    Grazie infinite.
    Giovanni

    PS… purtroppo non si vede l’indendazione del codice…

    #7717

    quando la gui ti manda “position startpos moves d2d4” tu non devi rispondere.
    subito dopo la gui *deve* inviare “go infinite” o “go wtime 12345 btime 23456” o cmq un comando “go” e solo adesso puoi rispondere con “bestmove d7d5”

    #7718
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Nella mia ignoranza l’Harbour non lo conosco… pensi di sviluppare un chess engine con questo linguaggio?

    LL

    #7719
    calimero22
    calimero22
    Membro

    Ciao. Si, almeno inizialmente. E’ un linguaggio molto semplice, gestisce array ad alto livello, ecc.
    Ok. Adesso graie al tuo consiglio (Edoardo).. qualcosa sta nascendo…..
    A presto.
    Ciao.
    Giovanni

    #7720

    marco belli
    Membro

    al comando “position” non si risponde, devi solo impostare la posizione all’interno del tuo engine.
    al comando “go” ( con tutti i suoi parametri) devi rispondere:
    “info currmove d7d5” (se vuoi)
    “bestmove d7d5″ (obbligatorio)

    Ciao

    #7721
    calimero22
    calimero22
    Membro

    Grazie Marco.
    Ho visto cmq. che ogni GUI si comporta in modo diverso.
    Per esempio, “Arena” si accontenta della sola “bestmove d7d5” per fare la mossa.
    Invece “Kvetka” vuole anche “info pv d7d5” sennò non fa nulla.

    Voi che GUI consigliate?
    Con che programma disputate i tornei tra engines?

    Grazie sempre a tutti
    Giovanni

    #7722

    marco belli
    Membro

    io uso arena 3.0 ( la versione 3.5 è bacata) oppure cutechess-cli che permette di disputare tornei da lina di comando, più veloce, migliore di arena, ma non puoi vedere le partite in diretta

    #7723

    marco belli
    Membro

    lo standard è semplice, al comando “go” si risponde con “bestmove ….” se vuoi puoi aggiungere l’informazione “ponder” alla risposta, per esempio “bestmove e2e4 ponder e7e6”.
    la risposta bestmove va data quando hai finito di pensare o se ti inviano un comando “stop”

Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)

Devi essere loggato per rispondere a questa discussione.

© 2019 G 6 Tutti i diritti riservati - Buon divertimento!

By continuing to use the site, you agree to the use of cookies. more information

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi