Vývojový deník :: Serpent ------------------------- Pátek, 26.2.2010: - Večery předešlých týdnů se odehrávaly ve znamení seriálu Black Books a popíjení různých druhů červených vín z Billy. Někdy kolem data representačního plesu ČVUT (Sobota, 27.) se po prohlížení námětů na semestrální práce zrodila myšlenka vytvořit plně objektového hada a k němu doprogramovat umělou inteligenci. S GUI v javě nemám žádné zkušenosti, tak se alespoň něčemu přiučím. Neděle, 28.2.2010 - Zvolil jsem vývoj na platformě Linux Mint a prostředí NetBeans 6.8. - Jak ubývají lahve vína, rýsují se základy hadovského prostředí ( hrací plocha -- systém segmentů a nodů). Segmenty slouží jako neměnné vyjádření území a nody jsou objekty, které jsou na segmentech umístěny Úterý, 2.3.2010 - Práce výrazně pokročily. Had bude nést jméno Serpent a sám bude implementován jako jednosměrný propojený seznam. - Naprogramovány odvozené třídy od nodu: node typu hlava, node typu tělo. Středa, 3.3.2010 - Částečně změněn koncept. Tělo se bude skládat z různých věcí, které had sní. Zatím jsem naprogramoval odvozenou třídu poživatelný node a od ní odvozené finální jablko, pomeranč... ovlivněn Black Books jsem implementoval i červené a bílé víno, whiskey, absinth a vodku. - Lucka mi bude dělat grafiku. Sežrané objekty budou mít jiné obrázky, zatím za sebou had tahá objekty s původními obrázky (které jsem nakreslil v Gimpu -- když Linux, tak Linux). Pátek, 5.3.2010 - Had ovládaný uživatelem již funguje. Pokouším se o návrh a implementaci vlastního algoritmu umělé inteligence. Mořím se s ním doslova od brzkého rána do pozdního večera. Nevycházím z domu. - Pozdě večer snahu vzdávám a hledám vhodný algoritmus. - Nalézám algoritmus A* (A star) a pokouším se ho implementovat. - Marně. Sobota, 6.3.2010 - Pracuji od rána a pozdě odpoledne je algoritmus implementován. Byla to fuška a odcházím si odpočinout do kina na Burtonovu Alenku. - Had, kterému jsem vdechnul život, se směle pohybuje po hrací ploše a sbírá jablka. Když je hodně dlouhý, občas se stane, že uvězní sám sebe v jedné z komor, vyhodnotí cestu ven jako nemožnou a ukončí se. - Napadlo mě řešit tuto situaci přepnutím hada do módu, který pojmenuji DESPERATION. V tomto módu by se had chytil nejbližší zdi a tak dlouho by bloumal po komoře, až by uvolnil východ. - Hraji s počítačem a ještě jsem ho nedokázal porazit na skóre. Úterý, 9.3.2010 - Mám narozeniny. - Umělá inteligence se nyní pokouší dostat k nejbližší volné potravě, nikoli k nejbližší potravě (která může být i uvězněna za zdmi). - Do umělé inteligence jsem implementoval mód DESPERATION. Když had zjistí, že se nemá jak dostat k jakékoli potravě, aktivuje úsporná opatření a využívá každé dostupné volné políčko, dokud se cesta neuvolní. K implementaci módu jsem využil výjimky. - Had řízený počítačem nyní zemře pouze, když po něm vyloženě jdete a snažíte se ho zabít. Můj algoritmus je mírumilovný... pouze sbírá potravu a lidského hada vnímá jako další ze zdí. - Rozhodl jsem se upravit objektový model hry, poněvadž současný je trochu chaotický. Sobota, 13.3.2010 - Přidávám kosmetiku: Menu s možností nové hry, nastavení parametrů hry, nápovědy a ukončení. Zároveň čistím kód a optimalizuji. - Dokumentuji část kódu javadocem. - Hra začíná být připravena k odevzdání. Vím pouze o jednom závažném bugu. Sobota, 10.4.2010 - Po dlouhé době si opět sedám nad program a migruji celý projekt do prostředí Eclipse pod platformu Windows 7. - Přidávám podporu ukládání nastavení ve formátu XML. Jelikož XML právě probíráme v předmětu WMM, vytvořil jsem i DTD. - Mírně jsem optimalizoval algoritmus výpočtu nejkratší cesty, ale stejně se chystám k programu přiložit skript pro spouštění programového vlákna s vysokou prioritou. - Do všech kolekcí jsem přidal generiky a odstranil jsem zbytečná přetypování z Object a na Object. - Třídu HeadNode jsem učinil abstraktní a odvodil z ní třídy pro HeadNode řízené uživatelem a HeadNode řízené počítačem. Každá z nich má jiný systém trávení poživatelných předmětů. Každá hlava stráví poživatelný předmět tak, že změní jeho obrázek podle trávicího schématu. - Začínám zbožňovat Eclipse.