Skip to content

Latest commit

 

History

History
32 lines (16 loc) · 1.93 KB

arkkitehtuuri.md

File metadata and controls

32 lines (16 loc) · 1.93 KB

Arkkitehtuuri

Tietomalli

Kuva

Kuvassa on sovelluksen persistoima data luokkakuvauksena. Sovelluksessa on pelaajia, joihin liittyy pelituloksia, ja nämä molemmat tallennetaan. Pelaajilla ei ole muuta rajoitetta kuin että nimi on yksilöllinen, eli kahta samaa pelaajanimeä ei voi rekisteröidä.

Sovelluslogiikkaa

Kuva

Kuvassa sovelluksen logiikan kannalta olennaisin kokonaisuus eli taso ja siinä vaikuttavat entiteetit. Taso tietää sisällään olevat entiteetit ja tason julkista metodia move_pac kutsutaan liikuttamaan Pacia. Taso myös tietää senhetkisen pistetilanteen, koska sen täytyy sitä pystyä manipuloimaan pelitapahtumien perusteella.

Pakkauskaavio

Kuva

Tässä on sovelluksen rakenne korkealla tasolla kuvattuna. Käyttöliittymäpakkaus sisältää suurin piirtein käyttöliittymän piirtämiseen läheisesti liittyvät luokat. Käyttöliittymäluokka käyttää pelilogiikkaluokan olioita Level ja kaikki eri Spritet. Osittain Spritetkin ovat käyttöliittymävastuualueella, mutta niillä on myös logiikkaa. Persistenssiin liittyvät luokat PlayerRepository ja ScoreRepository ovat käytettävissä niihin liittyvien Service-luokkien välityksellä. Entiteettejä Player ja Score käytetään lähinnä Service -ja Repositoryluokissa.

Kirjautumistoiminnallisuus

Alla on esitetty uuden ja olemassa olevan pelaajan kirjautuminen. Omalle koneelle ladattavan pelin ollessa kyseessä ei ollut mielekästä lähteä luomaan salasanoja, vaan pelaaja kirjautuu hyväksi katsomallaan nimimerkillä ja mikäli tällaista nimimerkkiä ei ole, se luodaan. Mikään ei käytännössä estä pelaamasta jonkun toisen pelaajan mahdollisesti käyttämällä nimimerkillä.

Uuden pelaajan kirjautumisen sekvenssikaavio.

Kuva

Olemassa olevan pelaajan kirjautumisen sekvenssikaavio.

Kuva