Instalace
---------
Zip archiv rozbalte nkam na disk. Pak si vytvote zstupce na ploe nebo v nabdce Start.

Odinstalace
-----------
V menu Soubor zvolte Odstranit nastaven. Tm se smae z registru sloka HKEY_CURRENT_USER\Software\Petr Lastovicka\piskvorky. Potom program smate z disku.

Pravidla hry
------------
Vyhrv ten, kdo vedle sebe umst nejmn pt svojich symbol ve vodorovnm, svislm nebo diagonlnm smru.

Ovldn
--------
Hru zan ten, kdo prohrl pedchoz hru. Zmnit se to d stiskem tlatka Nov hra (F2). Na stavovm dku je u zanajcho hre zobrazena hvzdika.
Na konci hry stisknte prav tlatko myi, aby se plocha vyistila a vy jste mohli hrt dl. Bhem hry se pi stisku pravho tlatka myi zvrazn posledn tah soupee. 
Dobu pemlen lze mnit klvesami +, -, 0 a 9, nebo ji lze zadat pmo v sekundch (menu Hri/Nastaven).
Pota si cel prbh hry pamatuje, a proto se mete vracet zpt o libovoln poet tah. Na konci hry si mete hru znovu pehrt, sta stisknout Home a pak klvesou PageDown krokovat po jednotlivch tazch. Mete si tak rozehranou nebo dohranou partii uloit na disk. Po oteven souboru mete pokraovat ve he nebo pout funkce zpt a vped. Kdy je pi otevrn souboru stisknuto Ctrl, pak se nezmn obtnost a hri.
Kliknut pravm tlatkem myi na jmno hre na stavovm dku pepne mezi lovk / Pota. Dvojklik na jmno hre zobraz okno pro vbr EXE souboru.

Dal uml inteligence (AI)
----------------------------
Na http://gomocup.wz.cz/ lze najt a sthnout nkolik dalch AI od rznch autor. Vtina z nich ale m njak omezen:
1) Hrac plocha mus bt tvercov. Nkter AI umj hrt jen na ploe 20x20.
2) Dobu pemlen lze nastavit s pesnost jen na cel sekundy. Nkter AI dokonce vbec neumj nastavit dobu pemlen. Nkter AI si kontroluj pouze as na jeden tah, ale ne as cel partie.
3) Vtina AI neum kontinuln hru ani monost pesn pt v ad vyhrv.

Monosti
--------
- ka,vka: rozmry hrac plochy. Pi jejich zmn zane nov hra ! 
- Automatick zahjen partie: pi zakrtnut tto monosti je na zatku kad hry automaticky vygenerovno nkolik tah. Je to dobr k tomu, aby hra nebyla vdy stejn. Kdy zan AI, pak obvykle vol vdy stejn zahjen. Touto volbou mu lze vnutit jin zahjen.
- Nhodn otet zahjen: zahjen je nhodn posunuto a otoeno nebo zrcadleno.
- pt nebo vce vyhrv/pesn pt vyhrv: kolik svch symbol mus hr umstit do ady, aby vyhrl. Pi turnaji vdy plat prvn pravidlo (est a vce v ad je tak vhra).
- jednotliv hry / kontinuln hra: Kdy zakrtnete jednotliv hry, pak kad hra skon, jakmile jeden z hr vyhraje. Kontinuln hra znamen, e lze pokraovat ve he tak dlouho, dokud se nezapln cel hrac plocha. Pi turnaji se vdy hraj jednotliv hry.
- Doba zvraznn tahu: jak dlouho je zvraznn posledn tah. Pokud vs to pi he rozptyluje, pak zadejte 0.
- Zvukov oznmen: na konci tahu potae se pehraje zvuk gomoku.wav. Tento soubor mete nahradit jinm wav souborem.
- Zobrazovat souadnice: zobrazen sel okolo hrac plochy.
- Souadnice slovat od 1: jestli m prvn polko souadnice [1,1] nebo [0,0]. M to vliv na logovac okno a sla podl hrac plochy. Nem to vliv na ukldan soubory a souadnice poslan do AI.
- slo tahu dlit dvma: plat pro slo tahu na stavovm dku.
- Ukldat vrcen tahy: pokud vrtte tahy zpt a hned potom ulote pozici do souboru, ulo se vechny tahy vetn vrcench
- Kontrolovat asov limit: Zobraz zprvu, kdy hr peml moc dlouho. Pi turnaji je as kontrolovn i v ppad, e tuto monost nezakrtnete.
- Tolerance: O kolik me AI pemlet dle ne je asov limit. Tato hodnota mus bt alespo 100ms.
- Pam: maximln velikost pamti, kterou zabr AI. Vtina AI (vetn pbrain-pela) tuto hodnotu ignoruj.
- Pozastavit soupeovu AI: Zabrn tomu, aby AI pemlelo v dob, kdy nen na tahu, a uralo tak as procesoru druhmu hri. Je to poteba hlavn pro turnaj. Tato monost se ignoruje pi he proti lovku a tak pokud AI pouv souborov protokol (exe nezan na pbrain-).
- Ladit AI: Pozastavovn AI se bude provdt tak, e se manaer k AI pipoj jako debugger. Jestlie tuto monost vypnete, pak manaer bude hledat vpoetn vlkna AI mezi vemi sputnmi aplikacemi, co kad tah o pr milisekund zpomal.
- Poslat info evaluate x,y: pouv se pro ladn AI. Tento pkaz se posl pi pohybu myi, ale jen kdy je na tahu lovk.
- Ignorovat chyby: Kdy tuto monost vypnete, pak se pi chyb AI krom hlky od manaeru zobraz tak hlka od operanho systmu, kde je zobrazena adresa chyby a tlatko pro sputn debuggeru. Pi sovm turnaji je tato monost vdy zapnuta.  
- Priorita procesu: Ovlivuje rychlost jinch sputnch program bhem pemlen AI. 
- Logovac okno: co vechno se m vypisovat do logovacho okna. Pkazy message a debug jsou uiten pro programtory k ladn jejich AI (pouze pro AI s prefixem pbrain-).
- Zapisovat obsah roury do souboru: pouv se pro ladn AI. Vechny pkazy zapsan nebo peten z roury se ukldaj do souboru s pponou log, kter je ve stejn sloce jako AI. V ppad ZIP je log ve sloce TEMP\psqXXX\unzX. Pi turnaji je tato monost vdy vypnuta.
- Sloka pro data: AI si do tto sloky me ukldat soubory, kter obsahuj zkuenosti zskan bhem hry. Vtina AI tuto monost zatm nevyuv.

Turnaj
------
- Hri: Na kad dek editanho obdlnka napite nzev exe nebo zip souboru, nebo je vyberte tlatkem Pidat.
- Ukldat partie: Partie se budou ukldat do zvolen sloky. Soubory _result.txt, _table.html, state.tur se do dan sloky ukldaj vdy.
- Ukldat zprvy od AI: Pkazy message se budou ukldat do souboru messages.txt.
- Gomotur formt (*.rec): Partie se budou ukldat ve formtu, kter pouv program Gomotur. Velikost hrac plochy mus bt 20 x 20.
- Jen prohran: Budou se ukldat jen ty partie, kter prvn hr v seznamu prohrl.
- Pkaz, kter se spust po kad partii/na konci turnaje: Extern EXE nebo BAT program. Me mt i parametry. Pracovnm adresem je sloka, kam se ukldaj vsledky parti.
- Poet opakovn/Poet parti: Mte-li n hr, k opakovn, p parti, pak pi zakrtnut kad s kadm se odehraje k*p*n*(n-1)/2 zpas. Pi zakrtnut prvn proti vem ostatnm je poet zpas jen k*p*(n-1). AI se zmn vdy po p partich. Pi turnaji po sti je skupina p po sob jdoucch parti piazena stejnmu klientovi.
- Opakovn pi remze: Maximln poet opakovn partie, kter skonila nerozhodn. 
- Pauza: ekn na konci kad partie.
- Tah: Maximln povolen doba pemlen nad jednm tahem. Zadv se v sekundch s pesnost na ti desetinn msta.
- Partie: Maximln povolen celkov doba pemlen bhem partie. M se zvl᚝ pro kadho hre. Nulov hodnota znamen neomezen. 
- Tolerance: O kolik me AI pemlet dle ne je asov limit. Tato hodnota mus bt alespo 100ms.
- Pam: Maximln velikost pamti, kterou zabr AI. Kontroluje se na konci kadho tahu a pi jejm pekroen je partie ukonena.
- Automatick zahjen partie: Automatick vygenerovn nkolika tah na zatku kad partie. Kad dvojice AI dostane stejn zahjen. Poet rznch zahjen zvis na potu parti a potu opakovn. 
- Nhodn otet zahjen: Zahjen je nhodn posunuto a otoeno nebo zrcadleno.

Rozmry hrac plochy a povolen pozastaven soupeova AI se nastavuj v dialogovm okn Monosti.
Tlatkem Pokraovat se ze souboru state.tur obnov stav dve peruenho turnaje. Ze souboru se natou nzvy hr, as na tah, as na partii, pam, automatick zahjen, rozmry hrac plochy. Ostatn daje je teba zadat ped stiskem tlatka Pokraovat. Je tak mon pokraovat v u dokonenm turnaji, pokud zvtte poet opakovn.
Turnaj lze kdykoli peruit stiskem Esc. Ve vsledcch turnaje je poet vher a proher rozdlen na ti stance: 1) hr zanal; 2) hr nezanal; 3) chyba nebo pekroen asov limit. V okn vsledk se tlatkem Tabulka zobraz html tabulka, kde jsou vsledky pro jednotliv dvojice hr. 

Turnaj po sti
--------------
Turnaj lze odehrt pomoc nkolika pota. Na vech by ml bt stejn rychl procesor. Jeden pota slou jako server, ostatn jsou klienti. Nejdve na serveru spuste turnaj. Po sputn se do logu nape nzev potae a server ek na klienty. Klienty je mon pipojovat nebo odpojovat kdykoli v pbhu turnaje. Klienti se pipojuj pkazem z menu Hra/Pipojit se. Krom jmna serveru a portu muste zadat tak sloku, do kter se budou stahovat AI ze serveru. Pokud u na klientu AI existuj, pak se jen zkontroluje, jestli maj stejn CRC jako soubory na serveru. Jestlie se AI skld z vce soubor, pak mus bt zpakovno do ZIP archivu. Po staen ze serveru si klient rozbal ZIP soubor do doasnho adrese. Ze serveru se krom AI poslaj tak informace o velikosti hrac plochy, asov limity, tolerance, limit pamti, automatick zahjen, povolen pozastaven soupeova AI, maximln poet opakovn pi remze. Pokud jste pi sputn turnaje zakrtli "Ukldat partie do sloky", pak klient po skonen partie posl zznam o vech provedench tazch, jinak pole jen vsledek partie a daje o asech a vyuit pamti. Po skonen turnaje zstvaj klienti pipojeni a ekaj na dal turnaj. Dokud je klient nebo server pipojen, je vtina poloek z menu nepstupn. Pokud se klient spust s parametrem -tmppsq, generuje prbn po kadm tahu psq soubor do sloky /tmp, kterou si vytvo v adresi pro stahovn AI.

Hra dvou hr pes internet
----------------------------
Hra se spust z menu "Hra/Pipojit se". Hri se musej pedem njak domluvit (nap. pomoc SMS nebo ICQ), kdy spolu budou hrt. Oba musej znt nzev nebo IP adresu druhho potae. Nkter funkce jsou pi he zakzny (vped, otevt soubor, prohodit hre, automatick zahjen). as nen omezen. Hri mohou mezi sebou komunikovat pomoc "Hra/Poslat zprvu". Dialogov okno pro posln zprv se automaticky aktivuje po stisku klvesy.

Dvkov spoutn
-----------------
Hru dvou AI lze spustit z pkazov dky. Prvn parametr je -p, druh a tet parametr jsou nzvy AI, napklad piskvork -p brain1.exe brain2.exe. Nvratov hodnota uruje, kdo vyhrl (1=prvn AI, 2=druh AI, 3=remza, 0=chyba). 

Spoutn s parametrem
----------------------
 <soubor> 
    Oteve psq soubor
 -p <ai1> <ai2>
    Hra ai1 proti ai2 (viz dvkov sputn)
 -tmppsq
    Generovn prbnch psq soubor pi turnaji. To je vhodn pro online penos turnaje.
 -a <maska>
    Nastaven vyuit jader procesoru. Pokud se pout dva klienti na vcejdrovm procesoru, je vhodn jednoho spustit piskvork.exe -a 1 a druhho piskvork.exe -a 2. Pak si nemohou, co se te vyuit CPU, konkurovat.
 -rule 0/1 
    Pravidlo pt nebo vce vyhrv / pesn pt vyhrv.
 -timematch <sekund>
    as na zpas.
 -timeturn <milisekund>
    as na tah.
 -memory <MB>
    Maximln vyuit pamti pro AI.
 -opening <index>
    Poad zahjen v souboru openings.txt (prvn zahjen m slo 0). -1 znamen dn zahjen. Kdy parametr -opening nen uveden, aktuln slo zahjen se ukld a nat z registru.
 -outfile <soubor>
    Soubor, do kterho se ukld hra.
 -outfileformat   
    Formt souboru -outfile. 1=psq, 2=rec
 -logmsg <soubor>
    Soubor, do nho se ukldaj zprvy od obou AI.
 -logpipe <sloka>
    Do kter sloky se loguje veker komunikace mezi manaerem a AI (pokud AI pouv nov protokol). Pro kad AI se vytvo samostatn soubor pbrain-name.exe.log

Kompilace (Microsoft Visual Studio)
-----------------------------------
- Vytvote nov przdn Visual C++ projekt a pidejte vechny zdrojov soubory.
- Do Project properties -> Linker -> "Command line" pipite wsock32.lib Version.Lib comctl32.lib winmm.lib
- V C/C++ -> Precompiled Headers -> "Precompiled Header File" zadejte hdr.h. Prvn poloku "Precompiled Header" nastavte na "Use (/Yu)". Potom v Solution Exploreru kliknte na soubor lang.cpp a v Properties zmte "Precompiled Header" na "Create (/Yc)".
- V Project properties pepnte na Configuration Release. Pak nastavte v C++ -> Code Generation -> "Runtime Library" na /MT
Ve Visual Studiu 2008/2010 strom vlastnost zan uzlem Configuration Properties, ve kterm se nachzej ve uveden nastaven.

Licence
-------
Na tento program (krom sloek skelet a skelet_Delphi) se vztahuje licence "GNU General Public License". Zde jsou uvedeny jen nejdleitj body. Cel jej znn (33KB, v anglitin) lze sthnout z autorovy webov strnky nebo http://opensource.org/licenses. 

1) Program je zdarma. Je povoleno ho koprovat nebo distribuovat na CD, teba spolu s jinmi programy. 
2) Program si mete pro vlastn potebu upravit. Tak mete sti zdrojovho kdu pout do svch vlastnch program. V obou ppadech muste splnit nsledujc poadavky:
 a) Nesmte zmnit nebo odstranit tuto licenci.
 b) Nesmte smazat jmno pvodnho autora.
 c) Zdokumentujete vechny proveden zmny a u kad zmny uvedete datum.
 d) Zdrojov kdy (vetn vaich prav a rozen) zdarma zveejnte na internetu. 
3) Program je bez zruky. 

http://petr.lastovicka.sweb.cz
http://gomocup.wz.cz
