Search
Cílem práce je vytvořit simulační framework představující prostředí, ve kterém žijí ruzná zvířata lišící se svými vlastnostmi. Součástí vypracované práce bude i několik implementovaných zvířat demonstrující funkce a možnosti simulačního frameworku. Simulátor bude obsahovat i vizualizaci ukazující aktuální stav světa.
Prostředí (reprezentované pravidelnou mřížkou) obsahuje aktuální polohu a stav jednotlivých zvířat. Na základě tohoto stavu se spočítá stav reprezentující následující den.
Pravidla pro jednotlivá zvířata mohou být např.:
Simulace bude podporovat hodně velké světy, které budou udržovány distribuovaně. Na každém počítači bude část světa. Když tento simulátor dostane přes síť povel, odsimuluje další kolo, poté potvrdí provedení simulace. Pokud se bude něco dít na hranici světa, zeptá se simulátor sousedícího simulátoru na stav konkrétního políčka.
GUI je samostatná aplikace, která se připojí ke všem simulátorům a přijímá od nich informace o aktuálním stavu světa (pouze tu část, kterou právě zobrazuje) a posílá jim instrukce na provedení dalšího kroku simulace.
Veškerá síťová komunikace bude v textovém formátu a dotazy na různé simulátory budou obslouženy pomocí vláken (jedno na jeden simulátor, se kterým se komunikuje).
Real-time simulace se od diskrétní simulace, liší v tom, že se stav světa neaktualizuje po dni, ale každé zvíře má své vlákno a kdykoliv může provést nějakou akci. Tato simulace také není distribuovaná. V této práci je hlavně důležité správně navrhnout práci s vlákny.