Kostru brainu jsem teď přidal ke svému manažeru (http://web.quick.cz/lastp/src/piskvork.zip). Ve složce source/skelet je kostra v C++ a ve složce source/skelet_Delphi je kostra v Pascalu pro Delphi4. Ve složce source/pbrain jsou zdrojáky od mého brainu. Logování příkazů posílaných přes roury jsem z brainu odstranil a přesunul je do manažeru. Pokud přesně nevíte, jak protokol funguje, tak si v manažeru zapněte logování a pak můžete například porovnat soubor pbrain-pela.log a log od vašeho brainu.
Příkaz RESTART je bez parametrů. Velikost hrací plochy zůstává stejná jako u předchozí partie. Brain musí odpovědět OK (nebo UNKNOWN). Manažer pak pošle INFO příkazy a za nimi příkaz BEGIN, TURN nebo BOARD.
Při Undo nebo Redo se příkazem BOARD posílá znovu celá hrací plocha. Je to zbytečně pomalé, ale zatím bych to tak nechal. Mnohem závážnější problém je, že kromě mého brainu zatím žádný nereaguje na příkaz END během přemýšlení. Když se totiž člověk splete a hned dá Undo, tak mezitím už brain dostal příkaz TURN a přestal reagovat na jakékoli příkazy od manažeru. Uživatel pak při Undo musí zbytečně jednu sekundu čekat a pak manažer zabije brain pomocí TerminateProcess. Nová kostra brainu funguje bez problémů, protože používá dva thready, z nichž jeden přemýšlí a druhý čte příkazy z roury.
Nová verze manažeru čte zahájení ze souboru openings.txt. Zatím je v něm asi 25 zahájení. Při turnaji se tento soubor může snadno nahradit jiným souborem, který bude obsahovat například jen pět zahájení. Tento soubor stačí dát na server, protože na klienty se zahájení posílají po síti. V souboru openings.txt jsou souřadnice relativní vzhledem k prvnímu tahu. Souřadnice prvního tahu se do souboru nepíší.
Při síťovém turnaji není žádná komunikace mezi klienty. Pokud si brain vytvoří nějaké soubory, pak zůstanou jen na jednom klientovi. Jestliže je ale turnaj odehrán na jednom počítači, pak jsou všechny dočasné soubory v jediném společném adresáři až do konce turnaje. Brain pak může měnit svou strategii podle toho, jak odehrál předchozí zápasy.
|