marco belli


Questa pagina ha una gerarchia - Pagine discendenti: 12′ Campionato Italiano, Faqs, Engine Testing, Engines alternativi, Engine Testing – All games

Risposte al Forum Create

Stai vedendo 15 articoli - dal 1 a 15 (di 143 totali)
  • Autore
    Articoli
  • in risposta a: AAAAAAAA Aiuto cercasi :-) #12266

    marco belli
    Membro

    infatti è stato risolto in quella maniera 🙂

    io testo principalmente su linux, e li non sono riuscito a ricreare il crash. Credo che sotto certe condizioni il programma va a leggere in un area di memoria deallocata…e alcune volte il sistema operativo blocca il programma perché sta tentando di accedere ad un area non sua. Anche perché da quelle letture col puntatore prendo solo flag per decidere se ridurre meno o di più.. dovrebbe cercare male ma non crashare.. invece crasha.

    Speriamo di averlo risolto.

    in risposta a: AAAAAAAA Aiuto cercasi :-) #12260

    marco belli
    Membro

    eccomi qua a descrivere il mio meraviglioso bug.

    dopo il rilascio di Vajolet 2.5 ho sostituito l’array degli stati ( quello usato per calcolare la ripetizione delle mosse e per fare undoMove per intendersi) con un std::vector in modo da non avere più problemi sulla lunghezza della storia, adesso è possibile fare partite di lunghezza infinita.
    questo vector cresce dinamicamente durante la ricerca e mi ero dimenitcato che quando la sua dimensione non basta più questo viene espanso riallocandolo e i puntatori ai suoi elementi non sono più validi.
    Per cui il programma a volte su windows va in crash. Non riesco a replicare il problema su Linux, non va mai in crash, solo il sanitize address da errore e termina il programma.

    Se qualcuno ha una macchina windows con abbastanza ram e processori e ha voglia, può provare a vedere se Vajolet 2.6 in gli va in crash mentre vajolet 2.6.1 dovrebbe avere il problema risolto ( spero )

    ciao e grazie a tutti per i consigli

    in risposta a: AAAAAAAA Aiuto cercasi :-) #12252

    marco belli
    Membro

    forse grazie ai consigli di fabio ho trovato il baco, o almeno ne ho trovato uno. ( santo -fsanitize=address )

    per adesso gli assert e gli altri sanitize non mi hanno dato errori. non appena finisci il debug scrivo due righe sul bug

    in risposta a: AAAAAAAA Aiuto cercasi :-) #12250

    marco belli
    Membro

    credo che al 99% il codice di Vajolet non sia compilabile su visual studio, ma solo cu clang e gcc. Uso un estensione di gcc e Clang che mi fa usare le istruzioni SIMD in modo trasparente. Sfortunatamente il compilatore microsoft non le implementa

    in risposta a: Torniamo ai tabi? #12234

    marco belli
    Membro

    questo dovrebbe essere il link
    https://github.com/gvreuls/cutechess

    in risposta a: Torniamo ai tabi? #12231

    marco belli
    Membro

    io credo che la versione usata dal tcec faccia alcune cose in più come salvare i pgn in modo incrementale e permettere di fare il recovery del torneo

    in risposta a: Torniamo ai tabi? #12227

    marco belli
    Membro

    Scusate, ma non ho capito il problema.
    Detto questo, cutechess cli potrebbe essere un opzione?

    in risposta a: consiglio per libri!! #12220

    marco belli
    Membro

    il mio c++, o comuqnue la programmazione ad oggetti va rispolverata 🙂 oggi tentando di scrivere alcuni esempi e test mi sono accorto che in molti punti avevo dubbi su funzioni virtuali e non, quindi prima di tutto devo ristudiarmi come funzionano le classi e l’ereditarietà 🙂

    a quel punto dovrò iniziare a leggere qualcosa di più, adesso nella mia lista ho messo ( in ordine sparso):
    1) code complete
    2) clean code
    3) effective c++ (serie)
    4) agile, priciples patterns and practice
    5) working effectively with legacy code
    6) qualcosa sul TDD se non già contenuto negli altri libri

    tornando ai tuoi commenti, è vero la programmazione di motori di scacchi impone un enorme vincolo al quale sacrifichiamo molto, la velocità. Ma è pure vero che in moltio punti con una programmazione attenta, disaccoppiando un po le classi dove possibile e scriendo tanti test e documentazione è possibile scrivere un po di codice di cui andare fiero 🙂

    qualche design pattern sono già riuscito a utlizzarlo in Vajolet e sorprendentemente non ha rallentato Vajolet. Ho implementato versioni moderne, ispirate dal c++11 e per ora stanno funzionando bene e hanno un po ripulito il codice. W il refactoring

    in risposta a: consiglio per libri!! #12218

    marco belli
    Membro

    ti sei dilungato…… troppo poco.

    allora, questo è il mio background oltre alla programmazione di Vajolet. Programmo per lavoro da 12 anni circa, e mi sono più o meno specializzato in codice C per microcontrollori di piccole dimensioni, scrivo firmware in poche parole, driver delle periferiche programmi che dialogano con hardware. Per svariati anni ho scritto, studiato e ottimizzato algoritmi di controllo per anelli retroazionati per elettronica di potenza, alimentatori e inverter fotovoltaici, roba da pochi kB e pochi microsecondi per essere eseguita 🙂

    Come puoi capire nel mio background non ci sono database, ricerce ricorsive, ma filtri passabasso, regolatori PID, trasformate di Clark e Park.

    Da un anno a questa parte il mio lavoro è cambiato e adesso lavoro in un team che lavora in un contesto Agile ( di nome, ma non sempre di fatto ) con scrum, pair programming, code reiew sviluppando applicativi in contesto linux in c++, python, con unit test e chi ne ha più ne metta.

    Mi ritengo un buon programmatore, ma effettivamente su alcuni argomenti sono un po da ristrutturare 🙂
    Inversione delle dipendenze, principi SOLID, ereditarietà, design pattern, scirvere codice per essere facilmente unit-testabile, programmare per interfacce e tante altre cose di design moderno ancora mi fanno venire il mal di testa, sto tentando di imparare e rispolverare quel poco di programmazione ad oggetti che avevo imparato all’univeristà.

    Il c++11 lo uso in Vajolet, ma effetivamente il mio design non è per niente moderno.

    Quindi se riesco a migliorare, Vajolet, il mio modo di programmare, le mie conoscenze per il mondo del lavoro, etc etc etc etc etc non sono che contento.
    tieni presente che sono un tipo a cui piace imparare cose nuove e applicarle.

    Per esempio adesso sto riscrivendo da capo Vajolet, aggiungendogli unit test e spero migliorandolo, migliorare il design, divertirmi. Se in questo riesco ad applicarci concetti più avanzati e a migliorarmi sono ancora più contento.

    Detto ciò probabilmente cerco più un libro che spieghi principi di principi che di un libro di programmazione C++.
    ho dato un occhio a C++ primer o thinking in c++, ma mi sembrano dei manuali di programmazione in cui si spiega if/else ereditarietà, funzioni virtuali ma non come disegnare una classe e perché usare un tipo di ereitarieà o composizione.

    Inizierò a dare un occhiata a “clean code”

    altre domande.. cos ne pensi della serie “effective c++”?
    working effective with legacy code?

    mamma mia quante domande

    in risposta a: Riconoscimento dei pedoni passati #12210

    marco belli
    Membro

    quanti sono i processori moderni senza istruzione BSF? io uso l’istruzone __builtin_ctzll() di gcc che usa l’istruzione BSF se supportata dall’architettura ( a livello di compilazione, non a runtime) ed è compatibile pure con architetture a 32 bit. In questo modo compilo per processori nuovi e vecchi con poco sforzo. Credo che queste istruzioni siano presenti in tutte le CPU degli ultimi 10 anni, quindi preferisco fare codice abbastanza ottimizzato per le nuove cpu ma che può essere compilato anche per le vecchie.
    Inoltre in genere ogni pedone passato ha un valore diverso, in base a quanto è avanzato a quanti e quali nemici ci sono sulla scacchiera, alla vicinanza dei re…..etc etc etc

    in risposta a: Perft #12204

    marco belli
    Membro

    beh allora son contento perché quelle posizioni sono state utili 🙂

    in risposta a: Perft #12202

    marco belli
    Membro

    comunque qui sembra che ancora nessuno abbia portato in fondo il test con i file che vi ho inviato 🙂

    in risposta a: Perft #12173

    marco belli
    Membro

    Nel repository di Vajolet3 è presente il file con i test funzionali del movegenerator. Questo è il link del file che contiene le 6838 posizioni perft prese a caso da partite giocate da Vajolet.

    https://github.com/elcabesa/vajolet3/blob/master/test/perft.txt
    il file contiene righe come la seguente nella quale trovate in sequenza, separati da virgole, fen e risultati dei perft da 1 a 6.
    rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -,20,400,8902,197281,4865609,119060324
    Allego al seguente messaggio 3 file, quello con tutte le posizioni e 2 file che sono l’input e l’output di confronto che usavo in passato prima di implementare gli unit test

    i file li potete usare così se avete un engine uci compliant che accetta il comando perft e lo gestisce in maniera bloccante:
    Vajolet < perft-random.txt >perft-randomResult.txt

    in risposta a: Perft #12172

    marco belli
    Membro

    Stasera guardo come fare a portarvi il file

    in risposta a: Perft #12165

    marco belli
    Membro

    Mi senti pronto per una bella sfida? Ho un file con 6838 fen con i risultati perft da 1 a 6 verificati con stockfish. Per verificarsi tutti ci vuole circa un giorno su vajolet. Accetti la sfida?

Stai vedendo 15 articoli - dal 1 a 15 (di 143 totali)
© 2018 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