# Uživatelská příručka

V této příručce se dozvíte vše důležité o programu z hlediska uživatele.

## Obsah

- Co je to The Life!?
- HW/SW požadavky
  - Hardwarové požadavky
  - Softwarové požadavky
- Instalace
- Rychlý start
- Ovládání
  - Menu
  - Panely nástrojů
  - Okno Nástroje
  - Zobrazovací oblast
  - Stavový řádek
  - Okno Mapa
  - Okno Graf
  - Okno Informace
  - Nastavení
- Historie
  - M1 ("The Heat") (1.9.2002)
  - M2 ("The Energy") (15.9.2002)
- Známé problémy
  - Ukotvování okna Nástroje funguje někdy chybně
  - Chyby při vykreslování zobrazovací oblasti
  - Kompatibilita s Windows 95
  - Někdy se chybně překresluje posuvník u grafu

## Co je to The Life!?

The Life! je jednoduchý program simulující chování jednobuněčných organismů (bakterií) v prostředí. Tato simulace má hodně daleko k přesnosti, ale může být využita ke studiu různých "strategií přežití" a jevů, jež ovlivňují chování organismů.

Organismů je několik druhů a je možné si libovolné další doprogramovat.

## HW/SW požadavky

### Hardwarové požadavky

Program je poměrně značně hardwarově náročný, což je dáno jeho podstatou. Teoreticky by měl běžet i na 386 se 4 MB RAM, ale v praxi je minimem Pentium 90 a 32 MB RAM. Pro větší simulace (řádově desítky tisíc organismů) doporučuji alespoň 128 MB RAM a procesor s frekvencí několika set MHz.

Nutností je monitor a grafická karta schopná zobrazit alespoň 256 barev v rozlišení 800×600.

### Softwarové požadavky

Skoro libovolná 32-bitová verze Windows. Program byl úspěšně testován na Windows 95 OSR 2 (nutné novější knihovny — viz Známé problémy), Windows 98 SE a Windows XP Professional.

## Instalace a spuštění programu

1. Rozbalte soubor `the-life-M2.zip` do libovolného adresáře.
2. Spusťte soubor `Life.exe`.

### Poznámka

Program si uchovává konfigurační informace v registrech ve větvi `HKEY_CURRENT_USER\Software\David Majda\The Life!\M2`. Pokud budete program mazat, nezapomeňte také smazat tuto větev registrů (např. pomocí programu Regedit).

## Rychlý start

1. Klikněte na tlačítko Přidat organismus. Objeví se seznam dostupných organismů.
2. Vyberte kliknutím libovolný organismus ze seznamu.
3. Klikněte kamkoliv do žlutohnědé oblasti. Tím vybraný organismus přidáte do simulace.
4. Klikněte na tlačítko Spustit. Tím spustíte simulaci.
5. Rychlost simulace můžete regulovat pomocí posuvníku vpravo. Pokud je jezdec nalevo, simulace běží pomalu; pokud ho přetáhnete doprava, simulace poběží rychle.

## Ovládání

Když The Life! spustíte, zobrazí se hlavní okno programu. To má několik částí:

- menu
- panely nástrojů
- okno Nástroje (defaultně ukotvené na levém okraji)
- zobrazovací oblast
- stavový řádek

Krom toho su můžete zobrazit pomocná okna:

- mapa
- graf
- informace

Nyní si jednotlivé části popíšeme.

### Menu

#### Soubor

> Nový | Vytvoří nový dokument.
> Otevřít... | Otevře stávající dokument.
> Uložit | Uloží aktivní dokument.
> Uložit jako... | Uloží aktivní dokument pod jiným jménem.
> Konec | Ukončí aplikaci.

#### Zobrazit

> Panely nástrojů | Jednotlivé položky v podmenu zobrazí/skryjí příslušný panel nástrojů.
> Zvětšení | Jednotlivé položky v podmenu nastaví odpovídající měřítko zobrazení.
> Potrava | Zobrazí/skryje v hlavním okně potravu.
> Chemikálie | Zobrazí/skryje v hlavním okně chemikálie.
> Organismy | Zobrazí/skryje v hlavním okně organismy.
> Nástroje | Zobrazí/skryje okno Nástroje.
> Mapa | Zobrazí/skryje okno Mapa.
> Graf | Zobrazí/skryje okno Graf.
> Informace | Zobrazí/skryje informace o simulaci.
> Stavový řádek | Zobrazí/skryje stavový řádek.

#### Simulace

> Spustit/zastavit | Spustí/zastaví simulaci.
> Krok vpřed | Provede jeden krok simulace.
> Zrychlit | Zrychlí provádění simulace.
> Zpomalit | Zpomalí provádění simulace.

#### Nástroje

> Možnosti... | Upraví nastavení programu. Blíže viz část Nastavení.

#### Nápověda

> Obsah | Zobrazí obsah nápovědy.
> O aplikaci... | Zobrazí informace o aplikaci.

### Panely nástrojů

V The Life! jsou k dispozici dva panely nástrojů: Standardní a Simulace. Ikony na nich představují zkratky k jednotlivým funkcím v menu.

Pokud na panelu kliknete pravým tlačítkem, zobrazí se menu umožňující jednotlivé panely zobrazit/skrýt.

### Okno Nástroje

Toto okno naleznete po spuštění The Life! ukotvené k levému okraji hlavního okna programu. Je to jediné pomocné okno, které lze takto ukotvit. Tažením za pruh nalevo ho můžete z ukotvení uvolnit (někdy je nutné podržet u toho klávesu Ctrl) a proměnit ho tak v normální pomocné okno. To zas můžete ukotvit zatažením k libovolnému okraji hlavního okna.

V oknu Nástroje najdete pět tlačítek — nástrojů — kterými ovlivňujete, co se stane při klikání (resp. tažení) myší v zobrazovací oblasti.

#### Výběr

> Pomocí tohoto nástroje můžete vybrat libovolný organismus z prostředí kliknutím na něm. Vybraný organismus je vyznačen zaměřovacími čárami. V okně Nástroje se pak zobrazí přehled jeho důležitých vlastností a uživatelských registrů, což se hodí především při vytváření organismů k jejich ladění.

#### Přidat organismus

> Po vybrání tohoto nástroje můžete klikáním do zobrazovací oblasti přidávat organismy do prostředí. Přidaný organismus je automaticky vybrán. Druh přidaného organismu lze volit ze seznamu.

#### Úpravy prostředí

> Tento nástroj umožňuje upravovat potravu v prostředí klikáním resp. tažením myší v zobrazovací oblasti. Co přesně se bude s potravou provádět je možné určit ve skupině Druh úpravy:

> - Přidat — přidá dané množství potravy do oblasti zasažené štětcem
> - Ubrat — ubere dané množství potravy z oblasti zasažené štětcem
> - Nastavit — nastaví množství potravy v oblasti zasažené štětcem na danou hodnotu
> - Náhodně — nastaví množství potravy v oblasti zasažené štětcem na náhodnou hodnotu

> Hodnotu použitou pro nastavení potravy je možno zadat do pole Hodnota (neplatí pro volbu Náhodně). Často používané hodnoty jsou přístupné pomocí tlačítek.

> Ve skupině Štětec se nastavuje typ štětce a jeho velikost (poloměr).

#### Kapátko

> Kliknutím v zobrazovací oblasti se převezme hodnota potravy na políčku pod kurzorem a přenese se do pole Hodnota ve volbách nástroje Úpravy prostředí. Zároveň je tento nástroj automaticky zvolen.

#### Zabít organismy

> Po kliknutí v zobrazovací oblasti zabije všechny organismy zvolených druhů v oblasti zasažené štětcem. Nastavení štětce je obdobné jako u nástroje Úpravy prostředí.

> Druhy organismů určené k zabití je možné vybrat zaškrtnutím ze seznamu, případně je možné použít tlačítek Všechny a Žádné.

### Zobrazovací oblast

V zobrazovací oblasti hlavního okna je zachyceno veškeré dění v prostředí. V menu Zobrazit je možné si zvolit, co všechno bude zobrazeno — lze zapnout/vypnout zobrazení potravy, chemikálií a organismů.

V oblasti je možné se pohybovat pomocí šipek, klikáním na posuvnících nabo přetahováním pravým tlačítkem myši.

Levým tlačítkem myši vyvoláte akci, která je závislá na vybraném nástroji.

### Stavový řádek

Ve stavovém řádku se zobrazují různé informace:

- počet okének od začátku simulace
- počet organismů v prostředí
- měřítko zobrazení
- souřadnice kurzoru myši a množství potravy a chemikálií, které se na těchto souřadnicích nacházejí
- nápověda k jednotlivým položkám menu nebo ikonám na panelech nástrojů

V průběhu některých operací se ve stavovém řádku zobrazuje indikátor jejich průběhu.

Dvojitým kliknutím na stavovém řádku zobrazíte okno Informace.

### Okno Mapa

V okně mapy vidíte přehledně zobrazené celé prostředí s organismy, které se v něm nachází. Rámeček označuje oblast, kterou právě vidíte v hlavním okně. Táhnutím levým tlačítkem můžete viditelnou oblast posouvat.

Volby vlastní a podle druhu slouží k určení, zda se organismy budou zobrazovat stejnou barvou jako v prostředí, nebo svou barvou druhu.

###
Okno Graf

V tomto okně se zobrazuje graf počtů jednotlivých organismů spolu s jejich seznamem a počty. Data v grafu sahají 1024 kroků simulace zpět. Měřítko grafu se automaticky mění tak, aby se všechna data vešla do zobrazovací oblasti. Užitečnou pomůckou jsou vodorovné linky, které se zobrazují po 10, 100, 1 000 nebo 10 000 organismech.

### Okno Informace

V tomto okně se zobrazují různé užitečné informace, sloužící primárně k ladícím účelům. Okno má tři záložky:

#### Potrava

> Tady najdete informace o energetické hodnotě celého prostředí. Je zde vypsáno celkové množství potravy, které je dále rozděleno na potravu volně v prostředí a vázanou v organismech. K oběma hodnotám je vypsán i průměr (na políčko resp. na organismus).

#### Čas

> Zde se zobrazují časy, které zabírají jednotlivé části každého kroku simulace. U každého času je uvedena i průměrná hodnota na jeden organismus.

> - Kategorie Organismy zahrnuje volání kontrolních procedur organsmů a s tím související výpočty.
> - Kategorie Překreslování zahrnuje překreslení zobrazovací oblasti a mapy.
> - Kategorie Ostatní zahrnuje překreslení grafu, okna Nástroje, Informace a stavového řádku.

#### Paměť

> V této záložce najdete údaje o počtech alokovaných bloků paměti a jejich souhrnné velikosti.

### Nastavení

The Life! disponuje několika možnostmi nastavení, které je možno upravit v dialogu Nástroje|Možnosti. Tento dialog obsahuje dvě záložky:

#### Simulace

> Zde jsou soustředěny volby ovlivňující průběh simulace. Jejich bližší popis najdete v API referenci.

> #### Různé

> Zde je možné nastavit gammu zobrazování potravy (zjednodušeně řečeno platí, že čím menší gamma, tím lépe jsou vidět tmavá místa zobrazovací oblasti). Krom toho můžete zvolit, zda chcete komprimovat soubory při ukládání. Doporučuji tuto možnost nechat vypnutou a zapnout ji jen v případě potřeby, protože komprese/dekomprese je poměrně pomalá (zato ale výkonná).

## Historie

Změny mezi verzemi jsou rozděleny na bugfixy, nové/vylepšené funkce a změny v dokumentaci. V rámci těchto sekcí není dodržováno žádné řazení, položky jsou přibližně v tom pořadí, v jakém jsem jednotlivé funkce implementoval.

### M1 ("The Heat") (1.9.2002)

- první uveřejněná verze

### M2 ("The Energy") (15.9.2002)

- bugfix: posunuta defaultní pozice okna Graf (aby nepřekrývalo okno Mapa)
- bugfix: `VLFToolsForm.dfm` ukládán jako binární (textové ukládání způsobovalo někdy problémy při buildu z příkazové řádky)
- bugfix: klávesové zkratky fungují, jen když mají (ne třeba v editačním poli)
- bugfix: při posouvání zobrazovací oblasti pomocí rolovacích lišt se správně překresluje mapa
- bugfix: opraveno počítání ztrát energie a hmotnosti při útoku organismu na jiný
- bugfix: mapa má vždy konstantní šířku, výška a zvětšení se tomu přizpůsobují
- bugfix: při změně měřítka zobrazení se pohled "centruje" do dříve zobrazené oblasti
- bugfix: při změně měřítka zobrazení se někdy chybně překresloval rámeček na mapě
- bugfix: chybné načítání barvy chemikálií ze souborů (hodnoty ale byly v pořádku)
- bugfix: opraveno několikanásobné přidávání/ubírání potravy při kliknutí na zobrazovací oblasti
- bugfix: program si poradí i se soubory obsahujícími neznámé organismy nebo se soubory s chybnou hlavičkou
- bugfix: nepadá při hodně malé velikosti okna
- bugfix: velikost rámečku na mapě se změní po změně velikosti okna
- bugfix: opraven obrácený význam voleb "Simualce|Zrychlit" a "Simulace|Zpomalit"
- bugfix: volby "Simualce|Zrychlit" a "Simulace|Zpomalit" zašednou, nejdou-li použít

- přidávání/ubírání potravy: pokud stisknete a držíte tlačítko myši a nehýbete kurzorem, potrava se opakovaně přidává
- nový organismus RGradient
- nový nástroj Zabít organismy
- nový typ štětce na úpravy potravy — sprej
- na formulář Nástroje přidána tlačítka s často používanými hodnotami potravy
- v seznamu organismů v okně Nástroje jsou i jejich barvy
- defaultní velikost štětce změněna na 25
- při otevírání a ukládání souborů se zobrazuje indikátor postupu
- optimalizace funkcí Soubor|Otevřít... a Soubor|Nový...
- pokud vyberete nástroj Upravit prostředí nebo Zabít organismy, zobrazuje se štětec přímo pod kurzorem myši
- podpora kolečka myši
- odstraněno blikání při scrollování zobrazovací oblasti
- změněn formát souboru, díky čemuž bylo urychleno ukládání a načítání souborů a ukládá se i graf (cena: asi 5% nárůst velikosti souboru)
- možnost komprimovat ENV soubory (až 98% úspora místa!)
- opraveno vykreslování zobrazovací oblasti
- 5-10× zrychleno vykreslování chemikálií
- odstraněno blikání zobrazovací oblasti při posouvání pohledu pomocí mapy
- u názvů organismů nehraje roli velikost písma
- přetahování zobrazovací oblasti pravým tlačítkem
- v nastavení lze měnit hodnotu gammy pro zobrazování potravy a zda komprimovat ukládné soubory
- v grafu se zobrazují mřížky
- pamatuje si rozměry nově vytvořeného prostředí a příště je použije
- tlačítko a položka menu Spustit/zastavit mění svůj nadpis a tooltip podle toho, zda je simulace spuštěná nebo zastavená
- velké změny v API (mj. znamenající snížení nároků na paměť pro organismy typicky na cca 20% a zmenšení velikosti ukládaných souborů)
- okno Ladění výkonu přejmenováno na Informace a rozšířeno
- dodávané systémové DLL knihovny mají své původní datum a čas (nikoliv univerzální z buildu)
- dodávané systémové DLL knihovny přemístěny do adresáře `DLL`
- nový program `DLLInstall.exe`, jehož spuštění nainstaluje systémové DLL knihovny potřebné na Windows 95
- nová ukázková prostředí Triangles a Corners
- dialog Nastavení přejmenován na Možnosti
- o něco zmenšen soubor `Life.exe`

- dokumentace: v referenci vše seřazeno podle abecedy
- dokumentace: zvětšeny nadpisy třetí úrovně
- dokumentace: reference reflektuje nové API
- dokumentace: sekce Implementační poznámky přejmenována na Technické záležitosti a podstatně upravena
- dokumentace: značně upravena a dopsána uživatelská příručka
- dokumentace: bugfix: ve schématu v tutoriálu prohozeny příkazy Secrete a Exclude
- dokumentace: spousty dalších mnších změn a oprav

## Známé problémy

Známých problémů od verze M1 značně ubylo, ale něco přece jen zůstalo. Dá se ale říct, že všechny zmiňované problémy jsou víceméně drobnosti.

### Ukotvování okna Nástroje funguje někdy chybně

Vypadá to na chybu v knihovně VCL ve vývojovém nástroji Borland Delphi 6, který používám k vývoji The Life!. Možná jen ale něco dělám špatně.

### Chyby při vykreslování zobrazovací oblasti

Na některých Windows (98 + ME?) se někdy přestane překreslovat potrava, nebo se překresluje chybně. Pravděpodobně je to záležitost ovladače grafické karty, protože chybu se mi podařilo reprodukovat pouze na jediném počátači (osazeném kartou nVidia Riva TNT2).

### Kompatibilita s Windows 95

Ve Windows 95 jsou zastaralé verze knihoven `oleaut32.dll` a `comctl32.dll`, které program potřebuje k běhu. V adresáři programu najdete program `DLLInstall`, který nainstaluje novější verze.

### Někdy se chybně překresluje posuvník u grafu

Chyba VCL nebo Win32 API, nebudu (a nejspíš ani nemůžu) řešit.