Meeskond "Terav Totris": Difference between revisions
(68 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
=Terav Totris= | =Terav Totris= | ||
Meeskonnaliikmetele antavad ülesanded on toodud | Lähtekood asub aadressil: http://code.google.com/p/totris. Meeskonnaliikmetele antavad ülesanded on toodud siin: [[#ToDo]]. | ||
=== Töö- ja lõppversioon mängust === | |||
[http://code.google.com/p/totris/downloads/detail?name=Totris.zip&can=2&q= Space Totris alpha X] | |||
[http://code.google.com/p/totris/downloads/detail?name=Space%20Totris.zip&can=2&q= Space Totris RC1] | |||
[http://code.google.com/p/totris/downloads/detail?name=Space_Totris.zip&can=2&q= Space Totris 1.0] | |||
[http://totris.googlecode.com/files/Space_Totris_v1.01.zip Space Totris 1.01] | |||
== 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 ruumi 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äissaanud 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. | |||
== ToDo == | == ToDo == | ||
{| class="wikitable" | {| class="wikitable" border=1 | ||
|- | |- | ||
! Ülesanne | ! Ülesanne | ||
! Teostaja | ! Teostaja | ||
! Tehtud? | |||
|- | |- | ||
| | | Graafika: klotsipildid, ava- ja lõpupildid ||Anneli ||Tehtud | ||
|- | |- | ||
| | | Kujundi klass - kujundite moodustamine, esilemanamine, kokkupõrgete kontroll||Anu ||Tehtud | ||
|- | |- | ||
| | | 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/Lauri || valmis | ||
|- | |- | ||
| klahvide loogika || | | klahvide juhend ||Anneli || tehtud | ||
|- | |||
| klotside kokkupõrgete kontrolli bugi || Lauri || valmis | |||
|- | |||
| klahvide loogika, parandada error et klots keerab ülemises reas väljakust välja || Mari || tehtud | |||
|- | |||
| järgmine klots väljakule || Mari || Tehtud | |||
|- | |||
| muusõka lisamine || Denis || 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 || tehtud - Mari tegi | |||
|- | |||
|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 | |||
|- | |||
|XBox'i versiooni jaoks alguspilt || Anneli || Tehtud | |||
|- | |||
|lahenduse kirjeldus wikisse || Anu || tehtud | |||
|- | |- | ||
|} | |} | ||
Line 72: | Line 132: | ||
* Lepiti kokku üldkoosoleku aeg, kus arutatakse uuesti töökorraldust ja jaotatakse rolle. | * 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 | |||
== Esialgne ajakava == | |||
{| border=1 | {| border=1 | ||
Line 81: | Line 172: | ||
| '''Helid''' ||Mitte nii oluline||lahe ||Denis ||03.11. | | '''Helid''' ||Mitte nii oluline||lahe ||Denis ||03.11. | ||
|- | |- | ||
| '''Kõige ekraanile joonistatava progemine | | '''Kõige ekraanile joonistatava progemine''' || '''Klotside klass''' - 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 | | '''Kõige ekraanile joonistatava progemine''' || '''Mängumanageri klass''' - Taimer ja taimeriseaded. Mängu käimapanek, seiskamine, lõpetamise tingimused. Mänguväljaku suuruse määratlemine (vastavalt tasemele). Põrgete tuvastamine mänguväljaku servade ja alumise reaga || ||Lauri|| ? | ||
|- | |- | ||
| '''Kõige ekraanile joonistatava progemine | | '''Kõige ekraanile joonistatava progemine''' || '''Tasemete klass'''. Punkti ja taseme arvestus || ||Lauri|| ? | ||
|- | |- | ||
| '''Mängu loogika progemine''' || Kõige eelneva kokkupanek. ||keskpärane/raske ||Mari || | | '''Mängu loogika progemine''' || Kõige eelneva kokkupanek. ||keskpärane/raske ||Mari || |
Latest revision as of 21:33, 1 December 2010
Terav Totris
Lähtekood asub aadressil: http://code.google.com/p/totris. Meeskonnaliikmetele antavad ülesanded on toodud siin: #ToDo.
Töö- ja lõppversioon mängust
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 ruumi 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äissaanud 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.
ToDo
Ülesanne | Teostaja | Tehtud? |
---|---|---|
Graafika: klotsipildid, ava- ja lõpupildid | Anneli | Tehtud |
Kujundi klass - kujundite moodustamine, esilemanamine, kokkupõrgete kontroll | Anu | Tehtud |
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/Lauri | valmis |
klahvide juhend | Anneli | tehtud |
klotside kokkupõrgete kontrolli bugi | Lauri | valmis |
klahvide loogika, parandada error et klots keerab ülemises reas väljakust välja | Mari | tehtud |
järgmine klots väljakule | Mari | Tehtud |
muusõka lisamine | Denis | 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 | tehtud - Mari tegi |
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 |
XBox'i versiooni jaoks alguspilt | Anneli | Tehtud |
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
Esialgne 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 | Klotside klass - 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 | Mängumanageri klass - Taimer ja taimeriseaded. Mängu käimapanek, seiskamine, lõpetamise tingimused. Mänguväljaku suuruse määratlemine (vastavalt tasemele). Põrgete tuvastamine mänguväljaku servade ja alumise reaga | Lauri | ? | |
Kõige ekraanile joonistatava progemine | Tasemete klass. Punkti ja taseme 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. |