Home Linx Sources Download Other E-Mail

Dokumentace k programu Dáma

1. Úvod

Tento soubor slouží jako dokumentace ke hře Dáma, jsou zde popsána pravidla, způsob ovládaní a postupy, které byly použity v programu. Program Dáma byl napsán v Turbo Pascalu 7 jako semestrální práce na programování na zimní semestr 2000 (ČVUT-FEL). Autorem je Bedřich Lacina, skupina 111, login jméno lacinb1. Pokud chcete stáhnout zrojový kód, (cca 60kB) není to žádný problém.

2. Pravidla Dámy

Zakladní pravidla:

V případě, že najednou může skákat více figur rozhoduje následující priorita:

Hra končí v následujících situacích (soupeř vítezí):

3. Technický popis

Tento program byl napsán na: PIII667@700, 384 RAM, GeForce2MX, WinME. Ale nároky jsou samozřejmě mnohem nižší.

Doporučená konfigurace

Dále odzkoušeno na těchto sestavách:

4. Ovládání hry

Ovládání je velice jednoduché. Hra se ovládá myší. Levé tlačítko slouží k označení figury a pravým tlačítkem přesunete figuru na vybrané pole. Chcete-li odznačit figuru stačí na ní kliknout pravým myšítkem. (Hra vám dovolí označit pouze figury, se kterými mužete hrát a automaticky skáče v jasných případech skákání.) Pokud budete chtít hru ukončit můžete použít buď klávesu <Esc> nebo kliknutí levým myšítkem na čtvereček v pravém horním rohu obrazovky.
Hra vám v levém dolním rohu zobrazuje, kdo hraje - bíle ohraničený černý čtverec znamená, že hraje černý hráč, bílý čtverec - hraje bílý hráč.

5. Popis problémů

V této sekci bych rád popsal několik hlavních problémů, se kterými jsem se setkal v průběhu realizace.

Vlastní ovladání hry
První problém, na který jsem narazil, bylo jak mám vyřešit komunikaci uživatel-počítač. Měl jsem několik nápadů:
a) mohl jsem vše vyřešit pomocí příkazové řádky, do které by se zapisovaly příkazy, nebo spíše souřadnice pole. Tento způsob jsem zavrhl především proto, že není tak uživatelsky příjemný (users friendly), a dále bych musel ošetřovat tento vstup (musel bych použít nejaký parser, špatně by se interpretoval převod mezi 'příkazy' a použitou datovou strukturou - to by vyřešilo použití jiné datové struktury)
b) ovládání pomocí myši - tento způsob se mi jevi jako nejpřirozenější (vetšina her funguje pouze pod platformou Woknous, a proto jsou hráči, pro které je samozřejme hra určena, pravděpodobně zvyklí na tento způsob ovládání). Byla použita jednotka (unit) stažená z internetu - tímto bych chtěl poděkovat našim holandským kolegům.

Interpretace hracího pole
Hrací pole je samozřejmě interpretováno jako matice 8x8. Avšak převod mezi kliknutím na grafické ploše na souřadnice toho pole mě nejprve zarazil, ale během několika okamžiků hlubšího zamyšlení jsem tento problem hravě vyřešil - pomocí mod dělení. Dalším problémem bylo jak interpretovat hrací pole v grafickém rezimu - tzn. jak mám překreslovat figury mazat pole a přesouvat v grafice. Nejprve jsem chtel vše řesit pomocí pole záznamů, ale vzapetí jsem pochopil, že bych si velice zkomplikoval převody mezi polem grafických středů a polem figur. Zavedl jsem proto konstantní pole středů buněk polí - pod polem 8x8 jsou ještě souřadnice X,Y - v grafickém režimu. Nakonec jsou tedy bunky pole naplneny variatními záznamy.

Výběr programovacího stylu
Rozhodoval jsem se mezi několika programovacími styly.
Naivní styl jsem zavrhl okamžitě. V tomto stylu by bylo téměř nemožné a nebo spíše naprosto nevhodné realizovat program, který dosahuje poněkud vyšší složitosti.
Procedurální styl zpočátku jsem tento styl začal realizovat, ale vcelku vzápětí jsem poznal, že z programu se stává nepřehledná nudle (stejne jsem musel použít modulu alespoň pro myš).
Modulární styl se nakonec stal jasným vítězem - je velice přehledný a snadno modifikovatelný - pokud například nebudu spokojen s grafickou stránkou hry stačí upgradovat jeden modul.

Home Linx Sources Download Other E-Mail Top

Tato stránka byla napsána v programu HTML-Kit. Je zadarmo a má tolik možností, že se o tom FrontPagey ani nesnilo. Podporujte dobré programátory, kteří poskytují software také zadarmo.

Last update 16. February 2001