Úvod

V rámci tohto materiálu sa budeme zaoberať dvoma spôsobmi riešenia rovnakého problému, konkrétne naprogramovania jednoduchej hry pre jedného hráča, keď má hráč za úlohu pomocou prievozníka/pltníka previezť na opačný breh rieky troch cestujúcich – vlka, kozu a kapustu, ktorí majú vlastné stravovacie návyky a špeciálne schopnosti. Príbeh znie takto:

„Prievozník vlastní plť, na ktorej prevezie okrem seba maximálne jedného pasažiera. Jedného dňa sa ocitol v situácii, keď mal bezpečne previezť na druhý breh rieky neobvyklú trojicu pasažierov. Vlka, kozu a kapustu. Vlk má chuť na kozu, avšak kapusta, ktorá ich sprevádza, je zázračná – dokáže kozu pred vlkom ochrániť. To síce koza vie, len čo sa však ocitne s kapustou sama, podľahne pokušeniu a zožerie ju. Prievozník sám je tiež autorita, takže v jeho bezprostrednej blízkosti nezje ani vlk kozu, ani koza kapustu. Problém teda je, že sa na jednom brehu rieky nesmú ocitnúť osamote vlk s kozou, ani koza s kapustou. V akom poradí ich previezť?“

V prvej časti materiálu pôjdeme po „rýchlej línii“ – uspokojíme sa textovým režimom, v ktorom by profesionálny programátor mal mať problematiku vyriešenú za niekoľko hodín. (Samozrejme, že pri štúdiu nie je možné postupovať tempom profesionála.) Ukážeme si niekoľko princípov, ktoré neskôr využijeme pri naprogramovaní rovnakej hry v grafickom režime. Pri zapojení animovanej grafiky a zvuku do hry, by aj na profesionála čakala práca na niekoľko desiatok hodín… Do tohto času však zahŕňame aj riešenie problémov, ktoré sú v rámci tohto materiálu už vyriešené.