Meeskond "Terav Totris"
Terav Totris
Meeskonnaliikmetele antavad ülesanded on toodud meie #Ajakavas
ToDo
Ülesanne | Teostaja | Tehtud? |
---|---|---|
tuleks üle vaadata veel klotside erinevad asendid. Kujundite keerutamine ei ole kõige ilusam | tegemata | |
ruudustik võiks tekkida ühe ruudu laiustest veergudest. | Anneli/Denis | Tehtud |
täitunud ridade loendamine, kustutamine ja vastavalt ülejäänud klotside liigutamine - pooleli | Denis | tehtud |
tasemete arvestamine ja näitamine | Lauri | valmis |
punktide (skoori) arvestamine ja näitamine - seotud kustuvate tulpade loendamisega | Mari/Denis | valmis |
klahvide juhend | Anneli | tehtud |
klahvide loogika, parandada error et klots keerab ülemises reas väljakust välja | Anneli/Denis | Mari parandas kogemata ära |
järgmine klots väljakule | Mari | Tehtud |
muusõka lisamine | Denis | pooleldi tehtud |
Kui väljak saab klotse täis, siis GameOver ja viskab ette alguspildi - Mangulopukontroll meetod üle vaadata, kas see ikka töötab | Mari | Tehtud |
Ruudustik peaks hakkama vasakult ära kaduma kui tase tõuseb | Lauri/Denis/Mari/Anu/Anneli - kes esimesena jõuab | tegemata |
Jälgida pidevalt, et kõik meetodid on korrektselt kommenteeritud - on arusaadav mida meetod teeb, tähtsamad parameetrid on kirjeldatud | Anu | pidev protsess kuni projekti lõpuni |
Update-de ja Skype üldkoosolekute lühisisu kajastamine wikis | Mari | pidev protsess |
Kogu programmeerimisprotsessi jälgimine ja kommunikeerimine, mis on pooleli, mis ei tööta, ettepanekute tegemine mida järgmiseks tuleks teha | Denis | pidev |
Kui progemisel keegi jänni jääb, siis abi debugimisel | Lauri | pidev |
Kujundamine vastavalt vajadusele | Anneli | pidev |
Üldkoosolekute aegade ettepanekute tegemine, tööde jaotamine, ToDo listi kirjutamine | Anneli | pidev |
Üldkoosolekul arutatavate teemade läbimõtlemine, arutatavatele küsimustele ja teemadele keskendumine | Anneli/Denis | pidev |
XBox'i puldi tugi | Denis | tehtud - almost |
XBox'i versiooni jaoks alguspilt | Anneli | tegemata - almost |
lahenduse kirjeldus wikisse | Anu | tehtud |
Kohtumised
07.10.
Toimus esimene sküpe koosolek, kus lepiti kokku järgnevas:
- tiimitöö väljundiks on Tetrise kloon
- kõik lõpetavad XNA paigaldused ja hakkavad sügavuti tutvuma XNAga
- igaüks otsib koodinäiteid teostatud tetrise mängudest XNAs
- järgmine koosolek toimub pühapäeval alates 21:30st sküpe vahendusel
10.10.
Toimus järjekordne sküpe-kohtumine, mil peale mõningast kribast jõuti nii kaugele:
- enamvähem jaotati ära, kes mida teeb
- mänguks jääb tetrise kloon (oridžinal, not)
- kõik uurivad veel C# ja ka näitena võetud tetrise koodi
- teisipäeval 12.10. järgmine virtuaalne kohtumine sküpes, kell 22.00 (parandage mind, kui eksin)
12.10.
Mida lepiti kokku?
- Anneli oli valmis treinud tabeli tööülesannetega (tupli, 5+)
- Denis tegi valma codeplexi projekti ruumi
- õpiti natuke tundma codeplexi, TeamViewerit ja lepiti kokku, et kõik õpivad ilusti codeplexi/teamviewer kasutama
- õppida, õppida, õppida XNAd, tetris, OOP
- laupäeval saadakse 12:30 koolis kokku, et positsioonid paika panna (loe: räägime korralikult kõik läbi ja kõik küsimused saavad vastused)
- dokumentatsioon on üleval siin
16.10.
- Anneli näitas kujunduse variante ja valiti "Kosmos"
- Codeplexist koliti üle Google Code'i + svn (selle kohta tuleb õpetus projekti lehele)
- Totrise projekt
- Lepiti üldiselt kokku vormindusreeglid
18.10. - 21.10
- Anu tegi valmis Kujundi klassi
- Denis kirjutas meie totrise google wikisse lühijuhendi Tortoise kasutamise kohta
- Anneli tegi vastavalt Anu soovile veel ühe komeedi kujundusfaili
- Sorgiti ühiselt Tortoiset, kuni kõik said kätte enamvähem toimiva update viimasest koodist
- Denis parandas ühel ööl ära mänguakna suuruse, parandas ära klotside alguskoordinaadid ja võimaldas Esc klahviga mängu sulgeda
- Anneli riidles ühel hommikul natuke skypes, sest ta ei saanud asjadest päris hästi aru enam
- Anu tegi Kujundi klassi põrgete kontrolli (juba vist päris alguses)
- Anu tegi nii, et järgmise kujundi aknas on kujundid alati 0 asendis, aga mänguväljakule sattudes suvalises asendis.
- Denis lisas ilma esialgu ilma ühegi meetodita ILiikuva interfeisi ja muljetas IE9 muljeid. Heiki propadanda mõjub siiski!
- Anneli lisas kujundusfailid: mängu avapilt klahvikasutusjuhendiga ja väljakupiiraja.
- Lepiti kokku üldkoosoleku aeg, kus arutatakse uuesti töökorraldust ja jaotatakse rolle.
22.10.
- sai kribatud ToDo, kuhu lisandusid nimed ja ülesanded
- uus üldkoosolek,esmaspäeval kell 22 - tibude lugemise aeg
23.10 - 25.10
- Mari sai tööle klotside eelvaatest väljakule manamise
- Anneli üritas klahve tööle panna, Denis sai P klahvi tööle
- Lauri debugis edukalt kokkupõrgete kontrolli ja arendas Taseme klassi
- Toimus üldkoosolek, mis polnud kõige paremini läbi mõeldud
26.10
- Denis tõestas, et poolläbipaistvad pngd on olemas ja Anneli joonistas tulbakujunduse, millest väljakut koostada. Uuendas ka mängu taustakujunduse faili - enam kohe pealejoonistatud väljakut ei ole.
- Denis kirjutas väljaku kokkujoonistamise klassi
- Anneli - uuendas ToDo listi, jagas üldisemad ülesanded
- Mari parandas paar bugi - klotside paremale keerutamise ja mängu lõpu kontrollimise
29.10
- Denis sai hakkama klotside kaotamise trikiga ja tegi algust punktiarvestuse meetoditega
- 60% meeskonna osalusel toimus ekstreemselt konstruktiivne üldkoosolek, keegi riidu ei läinud :)
- Lauri ja Mari lubasid oma tegemata tööd, punktiarvestuse ja tasemete muutumisega seotud mänguväljaku vähenemise, esmaspäeva õhtuks ära teha
- Ühiselt arvati, et kui aega üle jääb, võiks meetodid koodis loogilisemasse järjekorda panna
- Järgmine koosolek - 01.11.2010 22:00
01.11
- Kõik olid kohal :)
- Ühiselt otsiti ja leiti üles punktiarvestuse bugi
- Denis oli vahepeal muzõka lisanud. Suured tänud Denis'i sõbrale, kes viitsis meie heaks natuke komponeerida!
- Anu hakkab koodist mittevajalikke kommentaare kustutama
- Xboxi tugi vajab veel kohendamist, Denis üritab Heikilt testimiseks pulti laenata
- lõpp juba paistab
Lahenduse kirjeldus
Mäng "Space Totris" on klassikalise tetrise analoog, aga paari olulise erinevusega. Klotsid ehk käesolevas mängus meteoriidid ei lenda mitte ülevalt alla, vaid vasakult paremale. Erinev on ka see, et uuele tasemele jõudes ei muutu mitte klotside tempo kiiremaks, vaid hoopis mänguväljak muutub lühemaks, nii et mängijal on vähem aega klotse enne kohalejõudmist liigutada.
Tehnilised alused
Tehniliselt poolelt on mänguväljak lahendatud kahemõõtmelise massiivina, milles iga ruudu väärtus on esialgselt -1. Kujundid on lahendatud neljamõõtmelise massiivina, kus iga kujund paikneb 4x4 ruudustikus ning massiiv hõlmab iga kujunditüübi iga asendit. Ruudud, kus kujundi klotsid paiknevad, on väärtustatud 1-ga, tühjad ruudud 0-ga.
Kujundite paikajoonistamisel väärtustatakse klotsi alla jäävad mänguväljaku ruudud -1 asemel arvuga 0-6, vastavalt kujundi liigile. Ka kujundi võimalikke kokkupõrkeid teiste kujundite ja väljaku äärtega kontrollitakse vastavalt sellele, kas mänguväljaku ruudud on väärtustatud -1ga või enam mitte.
Kasutajajuhend:
Mängija peab väljakule jõudvatest kujunditest moodustama paremal ääres täisridu. Kujundid liiguvad automaatselt vasakult paremale. Mängija saab kujundeid keerutada ning üles- ja allapoole liigutada ning kui sobiv asend on käes, kohe kiiresti lõppu saata. Kui klots on paika jõudnud, hakkab liikuma järgmine kujund. Järgmisena väljakule tulev kujund on eraldi aknas näha.
Täis saanud read kaovad. Sõltuvalt täissaadud ridade arvust saab mängija punkte ning iga kümne rea täissaamise järel tõuseb mängu tase. See tähendab, et algselt 18 tulbast koosnev väljak muutub ühe tulba võrra lühemaks. Kokku on kümme taset.
„Space Totrist“ saab mängida nii arvutil klaviatuuriga kui ka Xbox'iga. Seadmele vastavad juhised on näha mängu avapildil.
Ajakava
Komponendi/Töö nimetus | Olulisus ja lühikirjeldus | Oletatav keerukus | Kes, mida teeb/teha tahab | Tähtaeg orienteeruvalt |
Graafika joonistamine | Taust, värvilised mummud, millest tetrise klotse teha. Oluline, sellest algavad vektorite arvutused. Avapilt teha! | normaalne | Anneli | 16.10.10 |
Helid | Mitte nii oluline | lahe | Denis | 03.11. |
Kõige ekraanile joonistatava progemine (board) | Klotside klass (block) - Oluline, mängu loogika ilma nendeta lihtsalt ei lähe. Klotside erinevad positsioonid (keeramisel). Klotside kokkupõrked seinadega ja alumiste ridadega. Järgmisena mängu tuleva klotsi eelvaade, selle klotsi sattumine mängu | Anu | 21.10 valmis | |
Kõige ekraanile joonistatava progemine (board) | Mängumanageri klass (GameManager?) - Taimer ja taimeriseaded. Mängu käimapanek, seiskamine, lõpetamise tingimused. Mänguväljaku suuruse määratlemine (vastavalt levelile). Põrgete tuvastamine mänguväljaku servade ja alumise reaga | Lauri | ? | |
Kõige ekraanile joonistatava progemine (board) | Levelite klass. Punkti ja leveli arvestus | Lauri | ? | |
Mängu loogika progemine | Kõige eelneva kokkupanek. | keskpärane/raske | Mari | |
Klotside ja mängu kontroll klaviatuurist | Kas see on lahutatav mängu loogikast? | lihtne | Denis | |
Xbox'i puldi tugi | Kui klaviatuuri kontroll olemas, siis peaks see olema lihtne | lihtne/keskpärane | Denis | |
Heli komponendtide lisamine | Valikuline - audio komponent | Denis | ||
Võrgutoe integreerimine projekti | Oluline - mängu klient/server kujule viimine. Annab boonuspunkte | raske | ||
Olgu kõik valmis! | Kaitsmine on 05.11. | Kõik see pere | 04.11. |