Skip to the content.

Board game

Nejprve se připojte do Lorem Ipsum týmu na Repl.it, kde by jste měli nalézt HTML5 verzi programu, který se nazývá “BoardGame 2”.

Popis programu

Základem celé aplikace je dvourozměrné pole game_board (10x10). K jednomu prvku pole přistoupíme s pomocí dvou hranatých závorek. Tzn. například:

game_board[1][0] = 10

uloží na první řádek a nultý sloupec hodnotu 10. Jednotlivé políčka v game_board jsou nastavená na hodnotu nula nebo jedna. Hodnota jedna má vyjadřovat, že na dané pozici nachází překážka.

Dále se v programu nachází proměnné x a y, které uchovávají pozici hráče. Hráč je ovládán šipkami a posun v poli je implementován ve funkci moveCircle.

Úkoly

U této verze zkuste následující úkoly:

NPC

Nyní zkusíme do našeho programu přidat NPC (non-playable character), který bude hráče pronásledovat. K tomu potřebujeme několik změn v našem programu:

  1. Proměnné, které budou udávat pozici NPC v programu.
  2. Funkci, která se bude spouštět v pravidelných intervalech a která bude posunovat pozici NPC.
  3. Funkci, která bude schopna v našem game_board nalézt nejkratší cestu od hráče k NPC.

Spouštění v pravidelných intervalech

Vytvořte si funkci posunNPC, kde bude docházet k posunu NPC a také se bude kontrolovat, zda-li NPC není na stejném poli s hráčem. Tato funkce se bude v JavaScriptu volat spomocí funkce setInterval. Takže to bude vypadat nějak takto:

function posunNPC() { 
  // dopiště vlastní logiku
  console.log("Function executed every second."); 
} 
setInterval(myFunction, 1000); // spouštěno každou sekundu

Hledání nejkratší cesty

Pro hledání nejkratší cesty využijeme algoritmus breath first search (BFS). Názorné vysvětlení algoritmu je možné vidět třeba zde. V lorem ipsum týmu na Repl.it je nyní program, který hledá nejkratší cestu v bludišti. Toto hledání realizuje funkce shortestPathSearch. Zkusme se podrobně podívat na jednotlivé parametry funkce:

Import do souboru

Pro zpřehlednění programu můžeme hledání nejkratší cesty (funkci shortestPathSearch) přenést do samostatného souboru a v index.js ji naimportovat. Příklad toho jak se to v JavaScriptu dělá můžete vidět v následující otázce na StackOverflow popřípadě si můžete přečíst delší vysvětlení exportu a importu v JavaScriptu zde.

Projects

Formulář pro hodnocení výsledné aplikace.