Keď som vám dal úlohu nakresliť šachovnicu, tak sa vám tá úloha zdala byť náročná, pretože ste ju realizovali mechanicky. Vyčarovali ste biele pole, pohli ste sa, vyčarovali ste čierne pole, pohli ste sa, keď ste došli na koniec riadku, otočili ste sa na sever, pohli ste sa, otočili ste sa na západ a znova ste začali kresliť políčka šachovnice. Vaše programy mali 140 až 170 prvkov.
Efektívne programovanie spočíva v tom, že sa programátor nad problémom zamyslí a všetko čo sa opakuje zovšeobecní.
Zovšeobecnenie toho, čo Baltík pri kreslení šachovnice robí, je v prvom programe – Šachovnica bez pomocníka.
Keď sa na príkazy, ktoré sa vykonávajú pozornejšie pozrieme, zistíme, že pri kreslení riadku šachovnice sa 4x opakuje rovnaká postupnosť príkazov: vyčaruj biele pole, pohni sa, vyčaruje čierne pole, pohni sa.
Týchto 16 príkazov možno nahradiť nasledujúcimi príkazmi:
Ďalší riadok obsahuje tie isté príkazy, ale Baltík sa musí ešte o jeden krok pohnúť, otočiť sa na sever, pohnúť sa a otočiť sa na západ.
Keď už máme nakreslené prvé dva riadky, pozorný programátor si všimne, že teraz sa ešte 3x opakuje kreslenie dvoch riadkov. Výsledný program potom vyzerá takto:
140 prvkov programu sme nahradili 26 prvkami. Je možné program ešte viac zredukovať?
Pomocníci
Program môžeme zredukovať pomocou pomocníkov. Prostredie Baltíka umožňuje vytvárať vlastné príkazy. Tieto vlastné príkazy nazývame pomocníci. V hornej časti obrazovky sa nachádza modrý panáčik. Keď na neho klikneme, tak sa zobrazí zoznam pomocníkov, na začiatku je tento zoznam prázdny. Zobrazí sa:
V dolnej časť okienka pomocníkov sú dvaja panáčikovia. Jeden s listom papiera a druhý bez neho. Ten list papiera symbolizuje zoznam príkazov, ktoré bude pomocník vykonávať. Keď vás mamička pošle do obchodu niečo nakúpiť, tiež vám napíše zoznam toho, čo máte kúpiť. Keď chceme definovať nového pomocníka, klikneme na panáčika s papierom, na koniec programu sa vloží panáčik, aby sme vedeli, čo tento pomocník robí, mali by sme ho nazvať tak, aby to vystihovalo jeho činnosť. Názov pomocníka zadáme pomocou prvku (do vnútra prvku napíšeme názov pomocníka ):
Keďže pomocník má nakresliť riadok šachovnice, nazveme ho riadok. Pod pomocníka skopírujeme tie príkazy, ktoré sa opakovali pri kreslení prvého i druhého riadka. Všade, kde bola táto postupnosť príkazov, ju zmažeme a nahradíme ju kliknutím na zoznam pomocníkov a kliknutím na pomocníka riadok. Výsledný program bude vyzerať takto:
26 prvkov sme zredukovali na 21, veľa príkazov sme neušetrili, hlavnou výhodou je to, že program je prehľadnejší.
Kvôli ešte väčšej prehľadnosti programu, môžeme vytvoriť pomocníka šachovnica, potom telo programu bude obsahovať iba dva prvky pomocníka a jeho názov a jednotlivé kroky programu budú na konci v sekcii s pomocníkmi. Keď teraz niekto otvorí tento program, tak ho nemusí podrobne štuďovať, ale bez toho, aby program spustil, bude vedieť, že program nakreslí šachovnicu. Ak by sa niekto rozhodol zmeniť farbu vykresľovaných políčok, zmenu vykoná iba na dvoch miestach programu v pomocníkovi riadok. Pri tom mechanickom riešení, ktoré ste pôvodne použili, by ste túto zmenu museli vykonať 64 krát. Niekedy v budúcnosti si ukážeme, že pomocníci môžu mať aj parametre a potom procedúru šachovnica môžeme upraviť tak, aby sme vedeli nakresliť šachovnicu s políčkami ľubovoľných farieb.
Naše zatiaľ konečné riešenie programu šachovnica vyzerá takto:
Má rovnaký počet prvkov, ako verzia v ktorej nebol pomocník šachovnica, ale takto je to prehľadnejšie a máme pripravenú pôdu pre budúce programy, v ktorých budeme potrebovať nakresliť šachovnicu, skopírujeme si do nich iba pomocníkov riadok a šachovnica.