-
Notifications
You must be signed in to change notification settings - Fork 0
/
piskvork_CZ.txt
138 lines (123 loc) · 13.3 KB
/
piskvork_CZ.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Instalace
---------
Zip archiv rozbalte někam na disk. Pak si vytvořte zástupce na ploše nebo v nabídce Start.
Odinstalace
-----------
V menu Soubor zvolte Odstranit nastavení. Tím se smaže z registru složka HKEY_CURRENT_USER\Software\Petr Lastovicka\piskvorky. Potom program smažte z disku.
Pravidla hry
------------
Vyhrává ten, kdo vedle sebe umístí nejméně pět svojich symbolů ve vodorovném, svislém nebo diagonálním směru.
Ovládání
--------
Hru začíná ten, kdo prohrál předchozí hru. Změnit se to dá stiskem tlačítka Nová hra (F2). Na stavovém řádku je u začínajícího hráče zobrazena hvězdička.
Na konci hry stiskněte pravé tlačítko myši, aby se plocha vyčistila a vy jste mohli hrát dál. Během hry se při stisku pravého tlačítka myši zvýrazní poslední tah soupeře.
Dobu přemýšlení lze měnit klávesami +, -, 0 až 9, nebo ji lze zadat přímo v sekundách (menu Hráči/Nastavení).
Počítač si celý průběh hry pamatuje, a proto se můžete vracet zpět o libovolný počet tahů. Na konci hry si můžete hru znovu přehrát, stačí stisknout Home a pak klávesou PageDown krokovat po jednotlivých tazích. Můžete si také rozehranou nebo dohranou partii uložit na disk. Po otevření souboru můžete pokračovat ve hře nebo použít funkce zpět a vpřed. Když je při otevírání souboru stisknuto Ctrl, pak se nezmění obtížnost a hráči.
Kliknutí pravým tlačítkem myši na jméno hráče na stavovém řádku přepne mezi Člověk / Počítač. Dvojklik na jméno hráče zobrazí okno pro výběr EXE souboru.
Další umělé inteligence (AI)
----------------------------
Na http://gomocup.org/ lze najít a stáhnout několik dalších AI od různých autorů. Většina z nich ale má nějaká omezení:
1) Hrací plocha musí být čtvercová. Některé AI umějí hrát jen na ploše 20x20.
2) Dobu přemýšlení lze nastavit s přesností jen na celé sekundy. Některé AI dokonce vůbec neumějí nastavit dobu přemýšlení. Některé AI si kontrolují pouze čas na jeden tah, ale ne čas celé partie.
3) Většina AI neumí kontinuální hru ani možnost přesně pět v řadě vyhrává ani pravidlo renju.
Možnosti
--------
- Šířka,výška: rozměry hrací plochy. Při jejich změně začne nová hra !
- Automatické zahájení partie: při zaškrtnutí této možnosti je na začátku každé hry automaticky vygenerováno několik tahů. Je to dobré k tomu, aby hra nebyla vždy stejná. Když začíná AI, pak obvykle volí vždy stejné zahájení. Touto volbou mu lze vnutit jiná zahájení.
- Náhodně otáčet zahájení: zahájení je náhodně posunuto a otočeno nebo zrcadleno.
- pět nebo více vyhrává/přesně pět vyhrává: kolik svých symbolů musí hráč umístit do řady, aby vyhrál.
- pravidlo renju: začínající hráč nesmí v žádném tahu udělat dvě čtveřice ani dvě trojice ani řadu více než pěti symbolů. Přesná pravidla najdete na http://www.renju.net
- jednotlivé hry / kontinuální hra: Když zaškrtnete jednotlivé hry, pak každá hra skončí, jakmile jeden z hráčů vyhraje. Kontinuální hra znamená, že lze pokračovat ve hře tak dlouho, dokud se nezaplní celá hrací plocha. Při turnaji se vždy hrají jednotlivé hry.
- Doba zvýraznění tahu: jak dlouho je zvýrazněn poslední tah. Pokud vás to při hře rozptyluje, pak zadejte 0.
- Zvukové oznámení: na konci tahu počítače se přehraje zvuk gomoku.wav. Tento soubor můžete nahradit jiným wav souborem.
- Zobrazovat souřadnice: zobrazení čísel okolo hrací plochy.
- Souřadnice číslovat od 1: jestli má první políčko souřadnice [1,1] nebo [0,0]. Má to vliv na logovací okno a čísla podél hrací plochy. Nemá to vliv na ukládané soubory a souřadnice posílané do AI.
- Číslo tahu dělit dvěma: platí pro číslo tahu na stavovém řádku.
- Ukládat vrácené tahy: pokud vrátíte tahy zpět a hned potom uložíte pozici do souboru, uloží se všechny tahy včetně vrácených
- Kontrolovat časový limit: Zobrazí zprávu, když hráč přemýšlí moc dlouho. Při turnaji je čas kontrolován i v případě, že tuto možnost nezaškrtnete.
- Tolerance: O kolik může AI přemýšlet déle než je časový limit. Tato hodnota musí být alespoň 100ms.
- Paměť: maximální velikost paměti, kterou zabírá AI. Většina AI (včetně pbrain-pela) tuto hodnotu ignorují.
- Pozastavit soupeřovu AI: Zabrání tomu, aby AI přemýšlelo v době, kdy není na tahu, a užíralo tak čas procesoru druhému hráči. Je to potřeba hlavně pro turnaj. Tato možnost se ignoruje při hře proti člověku a také pokud AI používá souborový protokol (exe nezačíná na pbrain-).
- Ladit AI: Pozastavování AI se bude provádět tak, že se manažer k AI připojí jako debugger. Jestliže tuto možnost vypnete, pak manažer bude hledat výpočetní vlákna AI mezi všemi spuštěnými aplikacemi, což každý tah o pár milisekund zpomalí.
- Posílat info evaluate x,y: používá se pro ladění AI. Tento příkaz se posílá při pohybu myši, ale jen když je na tahu člověk.
- Ignorovat chyby: Když tuto možnost vypnete, pak se při chybě AI kromě hlášky od manažeru zobrazí také hláška od operačního systému, kde je zobrazena adresa chyby a tlačítko pro spuštění debuggeru. Při síťovém turnaji je tato možnost vždy zapnuta.
- Priorita procesu: Ovlivňuje rychlost jiných spuštěných programů během přemýšlení AI.
- Logovací okno: co všechno se má vypisovat do logovacího okna. Příkazy message a debug jsou užitečné pro programátory k ladění jejich AI (pouze pro AI s prefixem pbrain-).
- Zapisovat obsah roury do souboru: používá se pro ladění AI. Všechny příkazy zapsané nebo přečtené z roury se ukládají do souboru s příponou log, který je ve stejné složce jako AI. V případě ZIP je log ve složce TEMP\psqXXX\unzX. Při turnaji je tato možnost vždy vypnuta.
- Složka pro data: AI si do této složky může ukládat soubory, které obsahují zkušenosti získané během hry. Většina AI tuto možnost zatím nevyužívá.
Turnaj
------
- Hráči: Na každý řádek editačního obdélníka napište název exe nebo zip souboru, nebo je vyberte tlačítkem Přidat.
- Ukládat partie: Partie se budou ukládat do zvolené složky. Soubory _result.txt, _table.html, state.tur se do dané složky ukládají vždy.
- Ukládat zprávy od AI: Příkazy message se budou ukládat do souboru messages.txt.
- Gomotur formát (*.rec): Partie se budou ukládat ve formátu, který používá program Gomotur. Velikost hrací plochy musí být 20 x 20.
- Jen prohrané: Budou se ukládat jen ty partie, které první hráč v seznamu prohrál.
- Příkaz, který se spustí po každé partii/na konci turnaje: Externí EXE nebo BAT program. Může mít i parametry. Pracovním adresářem je složka, kam se ukládají výsledky partií.
- Počet opakování/Počet partií: Máte-li n hráčů, k opakování, p partií, pak při zaškrtnutí každý s každým se odehraje k*p*n*(n-1)/2 zápasů. Při zaškrtnutí první proti všem ostatním je počet zápasů jen k*p*(n-1). AI se změní vždy po p partiích. Při turnaji po síti je skupina p po sobě jdoucích partií přiřazena stejnému klientovi.
- Opakování při remíze: Maximální počet opakování partie, která skončila nerozhodně.
- Pauza: Čekání na konci každé partie.
- Tah: Maximální povolená doba přemýšlení nad jedním tahem. Zadává se v sekundách s přesností na tři desetinná místa.
- Partie: Maximální povolená celková doba přemýšlení během partie. Měří se zvlášť pro každého hráče. Nulová hodnota znamená neomezeně.
- Tolerance: O kolik může AI přemýšlet déle než je časový limit. Tato hodnota musí být alespoň 100ms.
- Paměť: Maximální velikost paměti, kterou zabírá AI. Kontroluje se na konci každého tahu a při jejím překročení je partie ukončena.
- Automatické zahájení partie: Automatické vygenerování několika tahů na začátku každé partie. Každá dvojice AI dostane stejná zahájení. Počet různých zahájení závisí na počtu partií a počtu opakování.
- Náhodně otáčet zahájení: Zahájení je náhodně posunuto a otočeno nebo zrcadleno.
Rozměry hrací plochy a povolení pozastavení soupeřova AI se nastavují v dialogovém okně Možnosti.
Tlačítkem Pokračovat se ze souboru state.tur obnoví stav dříve přerušeného turnaje. Ze souboru se načtou názvy hráčů, čas na tah, čas na partii, paměť, automatické zahájení, rozměry hrací plochy. Ostatní údaje je třeba zadat před stiskem tlačítka Pokračovat. Je také možné pokračovat v už dokončeném turnaji, pokud zvětšíte počet opakování.
Turnaj lze kdykoli přerušit stiskem Esc. Ve výsledcích turnaje je počet výher a proher rozdělen na tři sčítance: 1) hráč začínal; 2) hráč nezačínal; 3) chyba nebo překročen časový limit. V okně výsledků se tlačítkem Tabulka zobrazí html tabulka, kde jsou výsledky pro jednotlivé dvojice hráčů.
Turnaj po síti
--------------
Turnaj lze odehrát pomocí několika počítačů. Na všech by měl být stejně rychlý procesor. Jeden počítač slouží jako server, ostatní jsou klienti. Nejdříve na serveru spusťte turnaj. Po spuštění se do logu napíše název počítače a server čeká na klienty. Klienty je možné připojovat nebo odpojovat kdykoli v přůběhu turnaje. Klienti se připojují příkazem z menu Hra/Připojit se. Kromě jména serveru a portu musíte zadat také složku, 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. Jestliže se AI skládá z více souborů, pak musí být zpakováno do ZIP archivu. Po stažení ze serveru si klient rozbalí ZIP soubor do dočasného adresáře. Ze serveru se kromě AI posílají také informace o velikosti hrací plochy, časové limity, tolerance, limit paměti, automatické zahájení, povolení pozastavení soupeřova AI, maximální počet opakování při remíze. Pokud jste při spuštění turnaje zaškrtli "Ukládat partie do složky", pak klient po skončení partie posílá záznam o všech provedených tazích, jinak pošle jen výsledek partie a údaje o časech a využité paměti. Po skončení turnaje zůstávají klienti připojeni a čekají na další turnaj. Dokud je klient nebo server připojen, je většina položek z menu nepřístupná. Pokud se klient spustí s parametrem -tmppsq, generuje průběžně po každém tahu psq soubor do složky /tmp, kterou si vytvoří v adresáři pro stahování AI.
Hra dvou hráčů přes internet
----------------------------
Hra se spustí z menu "Hra/Připojit se". Hráči se musejí předem nějak domluvit (např. pomocí SMS nebo ICQ), kdy spolu budou hrát. Oba musejí znát název nebo IP adresu druhého počítače. Některé funkce jsou při hře zakázány (vpřed, otevřít soubor, prohodit hráče, automatické zahájení). Čas není omezen. Hráči mohou mezi sebou komunikovat pomocí "Hra/Poslat zprávu". Dialogové okno pro posílání zpráv se automaticky aktivuje po stisku klávesy.
Dávkové spouštění
-----------------
Hru dvou AI lze spustit z příkazové řádky. První parametr je -p, druhý a třetí parametr jsou názvy AI, například piskvork -p brain1.exe brain2.exe. Návratová hodnota určuje, kdo vyhrál (1=první AI, 2=druhé AI, 3=remíza, 0=chyba).
Spouštění s parametrem
----------------------
<soubor>
Otevře psq soubor
-p <ai1> <ai2>
Hra ai1 proti ai2 (viz dávkové spuštění)
-tmppsq
Generování průběžných psq souborů při turnaji. To je vhodné pro online přenos turnaje.
-a <maska>
Nastavení využití jader procesoru. Pokud se pouští dva klienti na vícejádrovém procesoru, je vhodné jednoho spustit piskvork.exe -a 1 a druhého piskvork.exe -a 2. Pak si nemohou, co se týče využití CPU, konkurovat.
-rule 0/1/2
Pravidlo pět nebo více vyhrává / přesně pět vyhrává / renju.
-timematch <sekund>
Čas na zápas.
-timeturn <milisekund>
Čas na tah.
-memory <MB>
Maximální využití paměti pro AI.
-opening <index>
Pořadí zahájení v souboru openings.txt (první zahájení má číslo 0). -1 znamená žádné zahájení. Když parametr -opening není uveden, aktuální číslo zahájení se ukládá a načítá z registru.
-outfile <soubor>
Soubor, do kterého se ukládá hra.
-outfileformat
Formát souboru -outfile. 1=psq, 2=rec
-logmsg <soubor>
Soubor, do něhož se ukládají zprávy od obou AI.
-logpipe <složka>
Do které složky se loguje veškerá komunikace mezi manažerem a AI (pokud AI používá nový protokol). Pro každé AI se vytvoří samostatný soubor pbrain-name.exe.log
Kompilace (Microsoft Visual Studio)
-----------------------------------
- Vytvořte nový prázdný Visual C++ projekt a přidejte všechny zdrojové soubory.
- Do Project properties -> Linker -> "Command line" připište wsock32.lib Version.Lib comctl32.lib winmm.lib
- V C/C++ -> Precompiled Headers -> "Precompiled Header File" zadejte hdr.h. První položku "Precompiled Header" nastavte na "Use (/Yu)". Potom v Solution Exploreru klikněte na soubor lang.cpp a v Properties změňte "Precompiled Header" na "Create (/Yc)".
- V Project properties přepněte na Configuration Release. Pak nastavte v C++ -> Code Generation -> "Runtime Library" na /MT
Ve Visual Studiu 2008/2010 strom vlastností začíná uzlem Configuration Properties, ve kterém se nacházejí výše uvedená nastavení.
Licence
-------
Na tento program (kromě složek skelet a skelet_Delphi) se vztahuje licence "GNU General Public License". Zde jsou uvedeny jen nejdůležitější body. Celé její znění (33KB, v angličtině) lze stáhnout z autorovy webové stránky nebo http://opensource.org/licenses.
1) Program je zdarma. Je povoleno ho kopírovat nebo distribuovat na CD, třeba spolu s jinými programy.
2) Program si můžete pro vlastní potřebu upravit. Také můžete části zdrojového kódu použít do svých vlastních programů. V obou případech musíte splnit následující požadavky:
a) Nesmíte změnit nebo odstranit tuto licenci.
b) Nesmíte smazat jméno původního autora.
c) Zdokumentujete všechny provedené změny a u každé změny uvedete datum.
d) Zdrojové kódy (včetně vašich úprav a rozšíření) zdarma zveřejníte na internetu.
3) Program je bez záruky.
https://plastovicka.github.io
https://gomocup.org