Skip to content

sasha-labs/anthill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

anthill

Wanna English? Gotta wait!

##Úvod Anthill je počítačová simulace chování mravenců. Zkládá se ze tří částí:

  • Zavaděč - index.xhtml
  • Jádro - enviro.js, engine.js, style.css
  • Moduly - vše ve složce modules

##Zavaděč Index je uživatelsky nejpřístupnější část projektu. Zde se pomocí xml nastavují moduly, které se mají spustit. Nejprve je nutné spustit modul pro vytvoření mapy, poté je možné načíst nějaký algoritmus pohybu mravenců (neboli inteligenční modul). Moduly se spouštějí uvnitř těla html dokumentu (<html:body>) pomocí skriptů. Element <html:script> musí obsahovat atribut src udávající relativní cestu ke skriptu a většinou obsahuje také atributy nastavení (začínající na data-). Atributy nastavení jsou specifické pro každý modul.

Příklad nastavení:

<html:script
 src="./modules/maps/empty.js"
 data-width ="10"
 data-height="10"
/>
<html:script
 src="./modules/intel/langton.js"
 data-x="4"
 data-y="3"
 data-a1="1"
 data-a2="5"
 data-start-angle="0"
 data-time="1000"
/>

Pozn.: Spustí langtonova mravence na prázdné mapě 10x10, langtonův mravenec bude začínat na poli [x,y]=[4,3] a bude postupovat v krocích po jedné vteřině. Konfigurace mravence je 1,5 a délka kroku je 1 sekunda.

##Jádro Jádro se zkládá ze souborů enviro.js, které v tomto dokumentu nebudu nijak zvlášť popisovat - jeho kód mluví za vše, style.css a engine.js. Engine pracuje na principu šestiúhelníkové mřížky. Mapa světa je dostupná pod globální proměnnou window.World, fungují zde dva typy souřadnic - [x,y] (prioritní) a [q,r]. Více informací o souřadnicích naleznete zde (použité souřadnicové systémy: even-r & axial). Vykreslování obsluhuje prohlížeč, v DOMu je mapa reprezentována elementy <row> pro řádky a elementy <cell> pro jednotlivé buňky.

##Moduly Tahle část projektu je navržená tak, aby byla co nejlépe rozšiřitelná. Veškerý kód v modulech je uzavřený do takovéto konstrukce: (function(){ ... })();. To je proto, aby nezamořoval prostor svými proměnnými - tento kód je totiž uzavřen do funkce, která se posléze sama spustí - proměnné definované ve funkci zůstávají ve funkci. Pokud byste přeci jen chtěli vytvořit globální proměnnou, použijte objekt window (např. k window.foo lze přistupovat jako k foo, ale bude definováno globálně).

About

hexgrid mod-based game engine

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors