3. Formální specifikace

Zde jsou ve zkratce body, které ve formální specifikaci budeme popisovat pro přesnou a korektní následnou realizaci programu. Všechny body pak jsou popsány podrobněji.

3.1. Úvod programu a získání základních údajů od uživatele:
3.1.1. kolonka pro zápis jména
3.1.2. výběr soupeře
3.1.3. výběr obtížnosti (pouze u hry člověka proti počítači nebo počítače proti počítači)
3.1.4. výběr barvy figur
3.1.5. výběr možnosti ovládání hry
3.1.6. výběr měření času hry
3.2. Tvar šachovnice a rozmístění figur
3.3. V průběhu hry:
3.3.1. hlídání korektnosti tahů a jaké jsou korektní tahy
3.3.2. možnost vypnutí měření času hry
3.3.3. možnost vrácení tahu
3.3.4. možnost nápovědy
3.3.5. hlídání konce hry a jaké mohou nastat konce hry
3.4. Konec hry:
3.4.1. vypsání vítěze
3.4.2. vypsání času každého hráče a celkového času
3.4.3. vypsání nejlepších hráčů
3.4.4. možnost začít hru znova, tj. viz bod Úvod programu a získání základních údajů od uživatele

3.1. Úvod programu a získání základních údajů od uživatele:

Obrazovka bude rozdělena na dvě shodné části pro každého hráče zvlášť. Do každé kolonky se lze přepnou kliknutím myši nebo lze použít i klávesu zvanou "tabelátor".
V každé části se volí tyto parametry:

3.1.1. kolonka pro zápis jména:

Do této kolonky uživatel zapíše své jméno. Standardně bude v této kolonce nastaveno Hráč 1 (respektive Hráč 2) nebo něco podobného.

3.1.2. výběr soupeře:

V této kolonce volíme jednu ze dvou možností:

  1. člověk - za příslušné figury bude hrát člověk
  2. počítač - za příslušné figury bude hrát počítač

Standardně je v této kolonce zvoleno počítač.

3.1.3. výběr obtížnosti:

Tato kolonka bude zpřístupněna pouze v případě, že v kolonce výběr soupeře bude zvoleno počítač.
Pak lze zvolit jednu z následujících možností:

  1. lehký - počítač bude hrát jako začátečník a bude dělat i chyby (samozřejmě, že nebude vybírat ten nejideálnější tah, aby dodržel zvolenou úrověň)
  2. normální - počítač bude hrát jako pokročilý hráč šachů a chyby v jeho hře se budou vyskytovat už méně oproti první úrovni
  3. těžký - počítač bude hrát jako expert v oblasti šachů a bude vybírat ty nejoptimálnější tahy (možnost vyskytnutí se chyb by se měla blížit k nule)

Standardně zde bude vybráno normální.

3.1.4. výběr barvy figur:

Zde je možnost vybrat si barvu figur ze dvou barev používaných ve hře šachy a tím vlatně určit, která strana začne. Změněním barvy v této kolonce se projeví i změna v té samé kolonce u druhého hráče na barvu opačnou.
Barvy pro výběr jsou tyto:

  1. bílá - hráč s touto barvou figur vždy zahajuje hru
  2. černá - hráč s touto barvou figur je jako druhý na tahu

Standardně má Hráč 1 předvolenou barvu jako bílou a Hráč 2 černou.

3.1.5. výběr možnosti ovládání hry:

V této kolonce si může uživatel zvolit ovládání hry. Tato kolonka je zpřístupněna pouze v případě, že v kolonce výběr soupeře je nastaven člověk.
Možnost výběru je tento:

  1. myš - figury budou ovládány pouze myší a nebude se reagovat na žádné pokyny z klávesnice či jiného zařízení
  2. klávesnice - figury se budou ovládat z klávesnice, na žádné pokyny z jiného vstupního zařízení se nebude reagovat

Standardně je zde zvoleno ovládání pomocí myši.

ovládání figur pomocí myši:
Nad příslušnou figuru, kterou chceme přemístit, umístíme kurzor myši, levým tlačítkem chytneme a bez toho, abychom toto tlačítko pustili, přemístíme figuru na námi určené políčko (o korektnost pohybu figur se postará program - viz níže).

ovládání figur pomocí klávesnice:
Vybereme si figuru, kterou chceme přemístit, a zadáme její souřadnice. Poté zadáme cílové souřadnice (o korektnost pohybu figur se postará program - viz níže). Souřadnice figur se budou zadávat ve formátu písmeno a za písmenem hned číslo. Takže například. b5, e8, a4,...
Nebude-li se na první souřadnici vyskytovat žádná figura, program to zahlásí a vyzve uživatele k zadání nové souřadnice, na níž se figura už vyskytuje.

3.1.6. výběr měření času hry:

V této kolonce se vybere, zda má počítač měřit délku tahů každáho hráče či nikoliv.
Standardně je zde zvoleno, že ano. (Tato položka lze vypnout i v průběhu hry.)

3.2. Tvar šachovnice a rozmístění figur

pro bílé figury dole a černé figury nahoře pro černé figury dole a bílé figury nahoře
Tvar šachovnice a rozmístění figur pro bílé figury dole a černé figury nahoře Tvar šachovnice a rozmístění figur pro černé figury dole a bílé figury nahoře

vysvětlivky:

p - pěšec
V - věž
J - jezdec
S - střelec
D - dáma
K - král

3.3. V průběhu hry:

3.3.1. hlídání korektnosti tahů a jaké jsou korektní tahy:

Program bude hlídat korektnost tahů figurami v souladu s pravidly šachu. Program nahlásí nepřípustný tah, vrátí figuru na své původní místo a vyzve uživatele k opakovanému provedení tahu. Samozřejmě, že program nahlásí další situace, které nastaly.
Tyto situace jsou:

Korektní tahy:

Tyto tahy lze provést jen v případě, nestojí-li v cestě žádná jiná figura (ani vlastní ani soupeřova), jinak lze provést tah až tam, kde se figura dostane bez přeskočení jiné (výjimku tvoří jezdec), nebo, je-li to soupeřova figura, lze ji odstranit ze hry a na její místo postavit svou vlastní figuru (výjimku u odstraňování figur ze hry tvoří pěšec).

Pohyby věže

Některé další tahy a pojmy:

3.3.2. možnost vypnutí měření času hry:

Program umožní vypnutí času i v průběhu hry, čímž se přestane započítávat čas tažení každého hráče. Tento čas už nelze znovu zapnout, neboť výsledky z něj získané by byly nekorektní a zkreslené.

3.3.3. možnost vrácení tahu:

Program bude umožňovat vracení tahu zpět. Z tohoto poznatku plyne, že je možno vrátit všechny tahy postupně, čímž vlastně může uživatel hrát znova.
Možnost vrátit tah bude pouze ve dvou případech a to ve hře člověka proti počítači nebo ve hře člověka proti člověku.

3.3.4. možnost nápovědy:

Nápovědu může použít uživatel v případě, že neví, jak má dále táhnout. Na tuto možnost bude vyhrazena speciální klávesa (např.: "F1"), kdy po stisku této klávesy provede počítač jeden tah za uživatele (samozřejmě, že tento tah bude tím nejlepším tahem). Pokud se uživateli nebude příslušný tah líbit, má možnost jej vrátit!!!!

3.3.5. hlídání konce hry a jaké mohou nastat konce hry:

Program hlídá situaci, kdy hra bude končit. V případě, že dojde k situaci, která bude naznačovat konec hry, program tuto skutečnost nahlásí a hru ukončí.

Možné konce hry:

  1. mat - tento konec hry nastává v případě, že je ohrožován král, který nemá možnost se už nijak vyhnout, aniž by byl znova ohrožován a byl v šachu. A příslušný hráč nemá ani figuru, kterou by zabránil šachu.
    Tento konec hry je teda vítezným koncem hry pro jednoho z hráčů.

  2. pat - tento konec hry nastává v případě, že jeden hráč druhému nemůže dát mat (tj. oba hráči mají tak málo figur, se kterými už nelze dát mat, nebo některý z hráčů nemůže táhnout, aniž by se dostal do šachu). Tento konec hry je vlastně remízou a žádný z hráčů nevyhrál.

V každém případě hra končí ať už vítězstvím nebo remízou.

3.4. Konec hry:

3.4.1. vypsání vítěze:

Počítač vypíše jméno hráče, který vyhrál, a oznámí jeho barvu. V případě, že hra zkončila patem, program tuto skutečnost zahlásí.

3.4.2. vypsání času každého hráče a celkového času:

Program dále vypíše čas, po který každý z hráčů táhl figurama, pouze v případě, že tato možnost nebyla v úvodu nebo v průběhu hry vypnuta.
V každém případě program vypíše čas, po který doba hry trvala.

3.4.3. vypsání nejlepších hráčů:

Program dále umožňuje vypsání a zaznamenání nejlepších výsledků podle doby trvání času tahu hráče (myslím si, že je tento bod zbytečný a neobjektivní, ale vyřazovat jej z této dokumentace nebudu).

3.4.4. možnost začít hru znova:

Dále program umožňuje začít hru znova, což znamená, že se musíme vrátit na začátek, teda k "Úvodu programu a získání základních údajů od uživatele".

V tomto momentě končí formální specifikace....


Dále... / Zpět na úvod...