Autor: Martin Belluš
Toto je užívateľská dokumentácia k frontendu hry GMO šach. GMO šach je šachová hra, v ktorej sa ale hrá so špeciálnymi figúrkami, ktorých vlastnosti sú dané ich genómom.
Pre užívateľov sú pripravené 2 aplikácie, v ktorých sa táto hra odohráva:
Lab je aplikácia, v ktorej sa dá experimentovať s genómamy, ukladať si ich na server a vytvárať úvodné rozloženia figúrok do reálnej hry. Lab obsahuje testovaciu šachovnicu, editor genómov a menu na ukladanie a načítavanie genómov.
Hra je aplikácia, v ktorej sa hrajú reálne hry. Na začiatku si hráči načítajú dopredu vytvorené rozloženia figúrok a potom začnú hrať šach. Hra obsahuje hernú šachovnicu, menu na načítavanie rozloženia figúrok a šachové hodiny.
Na spustenie aplikácie je potrebná verzia pythonu 3.9 alebo vyššia.
Všetky potrebné knižnice sú vypísané v súbore requirements.txt
. Na ich
stiahnutie stačí zavolať príkaz pip install -r requirements.txt
.
Na spustenie hry sú taktiež potrebné obrázky pre figúrky. Tieto obrázky sa
nachádzajú v priečinku images
. Všetky obrázky sú vo formáte png
s alfa
kanálom. Ak je obrázkov príliš málo, môže sa stať, že rôzne figúrky budú v hre
vyzerať rovnako.
Navyše je potrebné, aby v priečinku images/special
boli 2 obrázky s názvami
king.png
a freeeze.png
, ktoré budú použité na označenie kráľa a efekt
zmrazenia obrazovky.
Každá figúrka má svoj genóm, ktorého formát je na začiatku hry tajný a hráči sa ho pokúšajú zistiť prostredníctvom experimentovania v labe.
Na jednoduchšie prenášanie figúrok medzi počítačmi sa používa takzvaný kód figúrky. Tento kód je spravidla 6-miestny reťazec alfanumerických znakov. Rozloženia figúrok majú podobný kód.
Pred spustením aplikácie je potrebné aby bežal server na adrese zadefinovanej v
súbore utility/constants.py
ako HTTP_URL
. Server sa nachádza v priečinku
server
a jeho funguvanie je popísané v súbore
server/server-documentation.md
.
Na spustenie labu stačí spustiť súbor lab.py
. Po spustení sa zobrazí okno
s editorom a testovacou šachovnicou.
Na pravej strane Labu sa nachádza editor genómov. Toto je textový editor, v ktorom sa dá upravovať genóm. Na spodku sa nachádzajú tlačitka na položenie figúrky na testovaciu šachovnicu a načítanie genómu zo súboru.
Na ukladanie a načítavanie figúrok a rozložení figúrok slúži menu v hornej časti okna. Nachádzajú sa v ňom nasledujúce tlačidlá:
Reset
- vymaže všetky figúrky z testovacej šachovnicePlace White Preset
- načíta prednastavené rozloženie figúrok podľa jeho kódu a položí ho na stranu bieleho hráča na šachovniciPlace Black Preset
- rovnako akoPlace White Preset
, ale položí figúrky na stranu čierneho hráčaSave Piece
- uloží obsah editora do súboru z príponou.dna
Save Preset
- uloží na server rozloženie figúrok na prvom alebo poslednom riadku šachovnice a zobrazí dialógové okno s jeho kódomFetch Piece
- načíta figúrku zo servera podľa jej kódu a vloží jej genóm do editoraHelp
- zobrazí nápoveduOpen Genome
- zobrazí sa dialógové okno na výber súboru. Následne sa obsah vybratého súboru načíta do editora
Figúrky na šachovnici sa ovládajú myšou. Ľavým kliknutím na figúrku sa zvýraznia políčka, na ktoré táto figúrka dokáže stúpiť. Ľavým kliknutím na jedno z týchto políčok sa figúrka presunie na toto políčko. Pravým kliknutím na figúrku sa zobrazia informácie o nej, hlavne jej kód.
Na spustenie hry stačí spustiť súbor game.py
. Po spustení sa zobrazí okno so
šachovnicou a šachovými hodinami.
Na spustenie hry je najprv potrebné, aby hráči načítali začiatočné rozloženie
figúrok pomocou tlačítok Place White Preset
a Place Black Preset
v menu. Po
načítaní si každý z hráčov pravým kliknutím vyberie figúrku, ktorá bude jeho
kráľ. Po tomto kroku sa môže spustiť hra tlačítkom Start Game
.
Na pravej strane sa nachádzajú šachové hodiny. Po stlačení tlačítka Start Game
sa spustia a začne sa odpočítavať čas aktívneho hráča. Hodiny aktívneho
hráča sú vždy zvýraznené. Po uplynutí času alebo vyhodení jedného z jeho kráľov
hráč prehráva.
Figúrky na šachovnici sa ovládajú rovnako ako v Labe. Ľavým kliknutím sa zvýraznia políčka, na ktoré dokáže figúrka stúpiť a ďalším ľavím kliknutím sa figúrka presunie na toto políčko. Pravým kliknutím na protivníkovu figúrku sa zobrazia políčka, na ktoré sa táto figúrka dokáže pohnúť.