Projekt: Gotowa aplikacja: AITamagotchi do dalszej rozbudowy



Podobne dokumenty
Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Zarządzanie Zasobami by CTI. Instrukcja

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

VinCent Office. Moduł Drukarki Fiskalnej

PERSON Kraków

A X E S S INSTRUKCJA UŻYTKOWNIKA

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Harmonogramowanie projektów Zarządzanie czasem

Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE

Objaśnienia wartości, przyjętych do Projektu Wieloletniej Prognozy Finansowej Gminy Golina na lata

ZAPYTANIE OFERTOWE NR 1

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Projekt z dnia 2 listopada 2015 r. z dnia r.

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA

SYSTEMY TRANSAKCYJNE (TraderTeam.pl: Rafa Jaworski, Marek Matuszek) Lekcja XIX

Warszawska Giełda Towarowa S.A.

I. Zakładanie nowego konta użytkownika.

Systemy mikroprocesorowe - projekt

ZGADNIJ i SKOJARZ. Gra edukacyjna. Gra dla 2 4 osób od 8 lat

Lublin, Zapytanie ofertowe

Platforma Aukcyjna Marketplanet. Podręcznik Oferenta. Aukcja dynamiczna zniŝkowa

Ogólna charakterystyka kontraktów terminowych

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Polityka prywatności strony internetowej wcrims.pl

INSTRUKCJA WebPTB 1.0

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Kancelaris - Zmiany w wersji 2.50

Umowa nr.. /. Klient. *Niepotrzebne skreślić

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

XXXXXXXXXXX. XXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX INTERPRETACJA INDYWIDUALNA

INFORMACJA O ZAMIARZE SPRZEDAŻY SKŁADNIKÓW MAJĄTKU

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),

Poniżej instrukcja użytkowania platformy

Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01

O WIADCZENIE MAJ TKOWE radnego gminy

Rozliczenia z NFZ. Ogólne założenia. Spis treści

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

Karta adaptacyjna GSM

ZAPYTANIE OFERTOWE. Nazwa zamówienia: Wykonanie usług geodezyjnych podziały nieruchomości

Sprawa numer: BAK.WZP Warszawa, dnia 27 lipca 2015 r. ZAPROSZENIE DO SKŁADANIA OFERT

Warunki Oferty PrOmOcyjnej usługi z ulgą

OŚWIADCZENIE MAJĄTKOWE

Skuteczność i regeneracja 48h albo zwrot pieniędzy

Polska-Warszawa: Usługi skanowania 2016/S

Administrator Konta - osoba wskazana Usługodawcy przez Usługobiorcę, uprawniona w imieniu Usługobiorcy do korzystania z Panelu Monitorującego.

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Spis tre ci. Zawarto :

Generalny Dyrektor Ochrony rodowiska. Art.32 ust. 1. Art. 35 ust. 5. Art. 38. Art. 26. Art 27 ust. 3. Art. 27a

Zapytanie ofertowe dotyczące wyboru wykonawcy (biegłego rewidenta) usługi polegającej na przeprowadzeniu kompleksowego badania sprawozdań finansowych

Ewidencjonowanie nieruchomości. W Sejmie oceniają działania starostów i prezydentów

Wzór umowy. Zal Nr 5 do SIWZ

Regulamin oferty Taniej z Energą

WYKAZ ZMIAN W INSTRUKCJI UśYTKOWNIKA KSI

Aplikacje internetowe i rozproszone - laboratorium

db powernet Instalacja czytnika kart mikroprocesorowych (instrukcja)

REGULAMIN ZAWIERANIA I WYKONYWANIA TERMINOWYCH TRANSAKCJI WALUTOWYCH

Edycja geometrii w Solid Edge ST

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Konfiguracja historii plików

PILNE Informacje dotyczące bezpieczeństwa Aparat ultrasonograficzny AFFINITI 70 firmy Philips

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Specyfikacja warunków zamówienia

1. Podstawy budowania wyra e regularnych (Regex)

Zdalne odnawianie certyfikatów do SWI

Aneks nr 8 z dnia r. do Regulaminu Świadczenia Krajowych Usług Przewozu Drogowego Przesyłek Towarowych przez Raben Polska sp. z o.o.

Środowiskowe Laboratorium Ciężkich Jonów Uniwersytet Warszawski

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

elektroniczna Platforma Usług Administracji Publicznej

Instrukcja zapisu do grup

Zapytanie ofertowe nr 4

Podstawa prawna: Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych (t. j. Dz. U. z 2000r. Nr 54, poz. 654 ze zm.

DANE MAKROEKONOMICZNE (TraderTeam.pl: Rafa Jaworski, Marek Matuszek) Lekcja XXIII

Formularz Zgłoszeniowy propozycji zadania do Szczecińskiego Budżetu Obywatelskiego na 2016 rok

Program sektorowy pn. Program

e-dziekanat Instrukcja użytkownika dydaktyk

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

Gdynia: Księgowość od podstaw Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - usługi

Grupa bezpieczeństwa kotła KSG / KSG mini

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Instrukcja programu PControl Powiadowmienia.

Ashampoo Rescue Disc

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

B/ZA Grudziądz, dnia...

FUNDUSZE EUROPEJSKIE DLA ROZWOJU REGIONU ŁÓDZKIEGO

INFORMATOR TECHNICZNY. Pierwsze uruchomienie przemiennika częstotliwości Astraada Drive UWAGA!

ZAPYTANIE OFERTOWE Program aktywizacji społeczno zawodowej osób bezrobotnych w gminie Naruszewo

ZAPYTANIE OFERTOWE. Tel/FAKS w46 ; Ogłoszenie na stronie internetowej

Umowa na przeprowadzenie badań ilościowych

Transkrypt:

WY SZA SZKO A INFORMATYKI I ZARZ DZANIA Z SIEDZIB W RZESZOWIE Inteligentne Systemy Autonomiczne Projekt: Gotowa aplikacja: AITamagotchi do dalszej rozbudowy Prowadz cy: mgr Daniel Jachyra Wykonawca: Mariusz Chru cielewski nr alb. 39233 6IIZ, GL03 Rzeszów, 2011 r.

SPIS TRE CI 1. Za enia projektowe... 3 1.1 Cele projektu... 3 1.2 Pierwotne za enia projektowe... 3 1.3 Zmienione za enia projektowe... 3 2. Wykonane prace:... 4 2.1 Problemy przy realizacji pierwotnego celu... 4 2.2 Realizacja zmian zgodnych z uaktualnionymi za eniami... 4 2.2.1 Poprawki w programie... 4 2.2.2 Rozwini cia programu... 5 3. U yte technologie... 8 4. Dalszy rozwój aplikacji... 8 5. Wnioski... 8

1. ZA ENIA PROJEKTOWE 1.1 CELE PROJEKTU ównymi celami projektu by o poznanie technologii C# z XNA Game Studio oraz prymitywnej sztucznej inteligencji zaimplementowanej w grze któr wybra em do rozwoju. Realizacja tych celów odbywa- a si poprzez rozbudow i popraw istniej cej gry Tamagotchi. Podczas pracy nad poprawkami i dodatkami trzeba zapozna si z ca ci kodu i wywnioskowa z niego zale no ci i interakcje. Krok ten pozwala w dobrym stopniu pozna technologi w jakiej pracujemy. 1.2 PIERWOTNE ZA ENIA PROJEKTOWE Pocz tkowo za enia mia y obejmowa dodanie dodatkowego zwierz tka do gry, zaprojektowanie interakcji pomi dzy zwierz tkami i dodanie dodatkowych funkcjonalno ci dla u ytkownika, które umo liwia yby opiek nad dwoma pieskami. Za enia te ze wzgl dów wymienionych w rozdziale 2.1 oraz po konsultacji z prowadz cym zosta y zmienione na nast puj ce w kolejnym rozdziale. 1.3 ZMIENIONE ZA ENIA PROJEKTOWE W efekcie nieudanych prób wykonania dodatkowego zwierz tka, po konsultacji z prowadz cym stworzone zosta y nowe za enia projektowe. W pracy swojej zaj mia em si popraw funkcjonowania aplikacji. Podczas prób wykonania pierwszych za zauwa em, e aplikacji pomimo swego pozornego dzia ania generuje wiele b dów i nieprawid owo ci. Mianowicie nie zmienia y si pory roku, dnia, godziny, e by o wy wietlanie logów itp. Dodatkowo postanowi em oprócz cz ci naprawczej wykona cz rozwojow, czyli doda do gry elementy poprawiaj ce jej wizualne i interakcyjne aspekty. Dodana zosta a mo liwo zabawy z pupilem oraz funkcjonalno wy wietlaj ca na niebie cia o niebieskie adekwatne do danej pory dnia w dzie s ce, w nocy ksi yc.

2. WYKONANE PRACE: 2.1 PROBLEMY PRZY REALIZACJI PIERWOTNEGO CELU Podczas prac nad projektem, zmianie uleg y za enia projektowe. Pocz tkowo zaj mia em si dodaniem dodatkowego zwierz tka do gry i zaprojektowaniem interakcji pomi dzy nimi. Niestety po wielu próbach i konsultacji z prowadz cym, okaza o si, e sposób napisania aplikacji uniemo liwia skuteczne dodanie dodatkowego zwierz tka. Jest to w ko cu Tamagotchi, które z za enia ma jedno zwierz tko. Problemy jakie napotka em na tym etapie, to system dzia ania aplikacji, mianowicie: - mózgiem zwierz tka steruje klasa Tamagotchi, przy czym konkretne zwierz tko nie ma swojego mózgu, klasa steruje samodzielnie a zwierz tko jest tylko wy wietlaczem - aplikacja steruje ruchem poprzez komunikacj z klas XNAChannel, w którym to ruchy zale ne s od komend otrzymywanych za po rednictwem klasy XnaChannelCommands od Tamagotchi. - ca jest bardzo ci le ze sob powi zana, i dodanie zwierz tka zako czy o si niestety niepowodzeniem. Podczas ostatniej próby, doda em zwierz tko, przerobi em kod programu do momentu, kiedy to klasa tamagotchi sterowa a zwierz tami naprzemiennie, efekt: pies nr 1 idzie do miski, pies nr 2 pije z miski, pies nr 1 idzie nad jezioro, pies nr 2 pije z jeziora. 2.2 REALIZACJA ZMIAN ZGODNYCH Z UAKTUALNIONYMI ZA ENIAMI 2.2.1 POPRAWKI W PROGRAMIE Podczas pracy z projektem wykonano wymienione poni ej poprawki w dostarczonej aplikacji: Poprawiono algorytm odczytu aktualnej daty i czasu. Aplikacja podczas uruchomienia pobiera dat systemow, wy wietla j w oknie Core i oknie gry. Nast pnie aplikacjia porusza zegarem z przyspieszeniem (1 sekunda to ok. 3 minuty w grze). Gra b dnie pobiera a dat (nie pobiera a jej wcale). Aplikacja aktualizowa a godzin, dat oraz por roku tylko w formularzu Core. Okno gry nie regowa- o na zmian czasu Kolejna poprawka wi e si ci le z powy sz, skoro gra nie pobiera a prawid owo daty i godziny, to równie jej nie aktualizowa a. Zaimplementowany zosta mechanizm, który na bie co aktualizuje czas i dat na której pracuje okno gry Ai_Dog. Gra nie zmienia a pór dnia oraz pór roku. Zawsze by dzie oraz wiosna. By o to zaimplementowane w kodzie na sta e co mo e wiadczy o pomy ce programistów. Do czony zosta mechanizm odczytuj cy aktualn dat i wg niej ustawiaj cy por roku. Analogicznie realizowane jest to z godzin i po- dnia. W zale no ci od pory roku powinien pada deszcz lub nieg. Gra nieodpowiednio wy wietla a rodzaj opadu oraz b dnie wypisywa a akcje w formularzu. Na li cie logów pojawia a si informacja, e pada deszcz a na ekranie widzieli my nieg, itp Poprawione zosta o równie wy wietlanie listy logów w formularzu Tamagotchi Core. Podczas dodawania logów lista nie przewija a si do ostatniego (najnowszego) wpisu. Skutkowa o to brakiem wygody podczas ledzenia informacji o zwierz tku. Dodano obs ug przewijania do ostatniej linii. Praca wykonana przy tym punkcie sk ada a si w 90% w odnalezieniu miejsca gdzie dany kod jest generowany a nast pnie umieszczeniu odpowiedniej instrukcji dotycz cej komponentu.

Ostatnim punktem jest dodanie mo liwo ci zamkni cia ca ej gry poprzez zamkni cie okna logów. Poprzednio aby zamkn gr nale o zamyka okna po kolei, w tym momencie zamkni cie okna logów zatrzymuje w tek dzia ania gry i zamyka okno aplikacji. 2.2.2 ROZWINI CIA PROGRAMU W ramach rozbudowy aplikacji postanowi em doda mo liwo zabawy z psem, w celu powi kszenia jego wska nika zadowolenia. Poprzednio by o to realizowane poprzez nakarmienie psa s odyczami. Moim zdaniem dodanie klawisza zabawy zwi kszy interakcj u ytkownika z gr i zmusi go do pewnego wysi ku przy wychowaniu swojego Tamagotchi. Zabawa zosta a zrealizowana na zasadzie paska post pu który b dzie rós w zale no ci od ilo ci klikni i mala je eli u ytkownik zaprzestanie klikania. Przej cie paska w ca ci doda zwierz tku dodatkowy punkt zadowolenia. Od strony technicznej zrealizowane zosta o to na podstawie klawisza i ProgressBar a z obs ug czasu, który cofa pasek post pu je eli u ytkownik zaprzestanie klikania. Kod poni ej: private void pobaw_sie_button_click(object sender, EventArgs e) { if (progressbar1.value >= 100) { tamagotchi.statistics.satisfaction.level++; progressbar1.value = 0; } else if (progressbar1.value + 4 > 100) { progressbar1.value = 100; } else { progressbar1.value += 4; } } private void timer1_tick(object sender, EventArgs e) { zegar++; if (zegar >= 10 && progressbar1.value > 0) { progressbar1.value--; zegar = 0; } Invalidate(); }

Drug dodan funkcjonalno ci jest ruch s ca/ksi yca po niebie. Dodaje to lepszego wygl du aplikacji i zwi ksza jej walory estetyczne. Prace wykonane przy tej funkcjonalno ci wymaga y zaimplementowania funkcji matematycznej ustalaj cej trajektoria ruchu s ca lub ksi yca. Dodatkowo zaimplementowa em obliczanie d ugo ci dnia i dostosowywanie do tej d ugo ci szybko ci ruchu po niebie, aby uzyska efekt wschodzenia zachodzenia s ca. Dodatkowo w zale no ci od pory dnia widzimy s ce lub ksi yc. Do wyznaczenia trajektorii lotu u ywa em programu wykresie (narysowanie odpowiedniej paraboli). Efekt widoczny poni ej jest po czeniem okna w nocy i okna w dzie. Ostatni funkcj by o ustawienie s ca/ksi yca w odpowiednim miejscu podczas startu aplikacji je li jest 15 to jest po po udniu wi c s ce nie powinno startowa od zera. Zrealizowane zosta o to przez odpowiednie sprawdzanie d ugo ci dnia w danym miesi cu roku oraz obliczanie czasowych opó nie ruchu s ca/ksi yca w taki sposób aby ca y ruch trwa tyle co pora dnia. Zosta o to zrealizowane z pewnym marginesem b du, poniewa opó nienia czasowe nigdy nie s takie same (kod raz wykonuje si szybciej, raz wolniej). Efekt jednak e jest zadowalaj cy mamy ruchome cia- o niebieskie. Kod wykonuj cy dzieli si na cz obliczaj (osobny w tek uruchamiany podczas startu aplikacji) i instrukcj rysuj wewn trz p tli Draw. Kod cz ci rysuj cej: public void ruch_slonca(){ while (Form1.zamykanie == false) { if (environment_moj.partofday == "dzie " //sprawdzanie pory dnia environment_moj.partofday == "poranek"){ //oraz obliczanie this.daylenght =( //pozosta ego czasu EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 0] - EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 0]) * 60 + (EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 1] - EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 1]);

this.dayleft = ( Time.CurrentTime.Hour * 60 + Time.CurrentTime.Minute) - (EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 0] * 60 + EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 1]); slonce = Content.Load<Texture2D>("slonce"); this.float_x = ((this.dayleft * 800) / this.daylenght; //x slonca this.spij = (((this.daylenght - 2) * 1000) / 2400); //opó nienie if (this.float_x < 800) { this.float_x += 1.0f; } else { this.float_x = 0; } this.float_y = (float)(0.001 * //obliczanie y s ca (float)math.pow(this.float_x - 400, 2)) + 5; Thread.Sleep(this.spij); } else if (environment_moj.partofday == "noc" environment_moj.partofday == "wieczór") { this.daylenght = 1440 - (EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 0] - EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 0]) * 60 + (EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 1] - EnvironmentCore.sun[Time.CurrentTime.Month - 1, 0, 1]); this.dayleft = ( Time.CurrentTime.Hour * 60 + Time.CurrentTime.Minute) - (EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 0] * 60 + EnvironmentCore.sun[Time.CurrentTime.Month - 1, 1, 1]); slonce = Content.Load<Texture2D>("ksiezyc"); this.float_x = ((this.dayleft * 800) / this.daylenght; this.spij = (((this.daylenght - 2) * 1000) / 2400); if (this.float_x < 800) { this.float_x += 1.0f; } else { this.float_x = 0; } this.float_y = (float)(0.001 * (float)math.pow(this.float_x - 400, 2)) + 5 Thread.Sleep(this.spij); }}} Rysowanie ogranicza si do prostej instrukcji zgodnej z standardem XNA: spritebatch.draw(slonce, new Vector2(this.float_x, this.float_y), Color.White);

3. U YTE TECHNOLOGIE Aplikacja AI Dog napisana by a w C# z u yciem technologii XNA Game Studio i.net Framework 4.0. Cytuj c twórców wad tego rozwi zania jest to, e na niektórych komputerach trzeba zainstalowa Microsoft.NET Framework 4.0. Podczas pracy korzysta em wi c z wymienionych wy ej technologii oraz Visual Studio 2010. J zyk C# i VS by y mi ca kiem dobrze znane, aczkolwiek XNA Game Studio by o technologi do now, co wymaga o ode mnie nauczenia si kilku potrzebnych rzeczy. Szczególne problemy sprawi o mi adowanie obrazów do tekstur poza obszarem LoadContent, co jednak uda o si rozwi za. 4. DALSZY ROZWÓJ APLIKACJI Aplikacja mo e by ci gle rozwijana. Skoro ustalili my, e dodanie nowego zwierz tka jest niewykonalne lub bardzo trudne, my e kolejnym krokiem rozwoju mog oby by dodanie menu powitalnego, w którym u ytkownik wybra by jakie zwierze chce wychowywa. Nale oby stworzy odpowiedni grafik kilku zwierz t oraz ich legowisk (dla psa buda, dla kota legowisko, dla ptaka klatka). Zmianie uleg yby wtedy ró nice w parametrach przydatno ci konkretnej akcji (dla psa zabawa na drzewie jest ma o wa na (0.2) ale dla kota mog aby by wa niejsza lub bardzo wa na (0.8). Nie s to oczywi cie za enia atwe do zrealizowania ale mog sta si podwalin pod dalszy rozwój programu 5. WNIOSKI ównym wnioskiem jaki nasun mi si podczas pracy z projektem, by o u wiadomienie sobie jak wa na jest dokumentacja przy projektach. Wa rzecz jest równie przejrzyste projektowanie aplikacji, ywanie krótkich i tre ciwych nazw zmiennych i metod oraz projektowanie aplikacji z wizj pó niejszych zmian. Gdyby do AI Dog do czona by a obszerna dokumentacja kodu i dzia ania, praca nad projektem by aby o wiele szybsza i atwiejsza. Niestety bez dokumentacji, musia em domy la si który kod odpowiada za któr funkcjonalno. Odszukiwanie tych relacji i po cze by o jedn z najbardziej czasoch onnych czynno ci.