Přečetl jsem si specifikaci UCI protokolu a několik věcí se mi na ní líbilo. Například, že AI musí vždy reagovat na příkazy od manažeru a to i když přemýšlí. V našem protokolu je to nepovinné a kromě pbrain-pela to snad nikdo jiný neumí. I když je UCI protokol docela dobrý, do manažeru ho přidávat nebudu. Jen pokud by se našlo více lidí, kteří by ho chtěli používat, pak bych se tím začal zabývat.
Přemýšlel jsem, co by se dalo zlepšit na našem protokolu, aniž by se musel celý zahodit, a napadlo mě několik věcí:
1) Odpověď na příkaz ABOUT by měla být v takovém tvaru, aby jí porozuměl nejen člověk, ale také manažer. Například u mého AI je to takto:
author="Petr Lastovicka", version="7.3", country="Czech Republic", www="http://
web.quick.cz/lastp"
2) Na příkaz INFO timeout_turn 0 by AI mělo reagovat tak, že okamžitě přestane přemýšlet a na výstup napíše zatím nejlepší nalezený tah. V poslední verzi manažeru se tento příkaz posílá při stisku mezerníku. Uživatel si proto může nastavit hodně velký čas na tah a pak kdykoli ručně přerušit přemýšlení AI. Před dalším tahem manažer pošle INFO timeout_turn s původní hodnotou času na tah.
3) Největším problémem našeho protokolu je, že na INFO příkaz není žádná odpověď. Uživatel žádným způsobem nemůže zjistit, na které INFO příkazy AI reaguje a které jednoduše ignoruje. Teď už se asi těžko dá protokol změnit, aniž by se tím narušila kompatibilita. Samozřejmě by bylo možné přidat do protokolu další příkazy, ale raději bych to řešil nějak jinak. Například by AI mohlo hned po spuštění poslat MESSAGE příkazy (u starého protokolu je na to soubor msg.dat), kde by se vypsalo vše, co AI umí nebo neumí. Především jde o časové limity. Ostatní vlastnosti si uživatel může zjistit sám (kolik AI potřebuje paměti, jaké rozměry může mít hrací plocha). Dalším z možných řešení je přidat ke každému AI krátký textový soubor, kde budou veškeré informace o AI. Také by bylo dobré umístit na webové stránky tabulku, která by měla sloupce čas na tah, čas na partii a paměť.
|