Meeskond "Terav Totris": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Arasu (talk | contribs)
Dveltson (talk | contribs)
 
(54 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=Terav Totris=
=Terav Totris=


Meeskonnaliikmetele antavad ülesanded on toodud meie [[#Ajakava]]s
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 ==
Line 11: Line 39:
! Tehtud?
! Tehtud?
|-
|-
| tuleks üle vaadata veel klotside erinevad asendid. Kujundite keerutamine ei ole kõige ilusam || ||
| 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
| ruudustik võiks tekkida ühe ruudu laiustest veergudest.||Anneli/Denis ||Tehtud
|-
|-
| täitunud ridade loendamine, kustutamine ja vastavalt ülejäänud klotside liigutamine - pooleli || Denis || pooleli
| täitunud ridade loendamine, kustutamine ja vastavalt ülejäänud klotside liigutamine - pooleli || Denis || tehtud
|-
| tasemete arvestamine ja näitamine || Lauri || valmis
|-
|-
| tasemete arvestamine ja näitamine || Lauri || pooleli?
| punktide (skoori) arvestamine ja näitamine - seotud kustuvate tulpade loendamisega || Mari/Denis/Lauri || valmis
|-
|-
| punktide arvestamine ja näitamine - seotud kustuvate tulpade loendamisega || Mari/Denis ||
| klahvide juhend  ||Anneli || tehtud
|-
|-
| klahvide juhend, kaks esc ümber teha kujundus ||Anneli ||
| klotside kokkupõrgete kontrolli bugi || Lauri || valmis
|-
|-
| klahvide loogika, parandada error et klots keerab ülemises reas väljakust välja ||Anneli/Denis ||
| klahvide loogika, parandada error et klots keerab ülemises reas väljakust välja || Mari || tehtud
|-
|-
| järgmine klots väljakule || Mari || Tehtud
| järgmine klots väljakule || Mari || Tehtud
|-
|-
| muusõka lisamine || Denis || Tegemata
| 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? debugimist võiks proovida Anu || Pooleli
| 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? ||
| 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
|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
|-
|-
|Skype üldkoosolekute lühisisu kajastamine wikis|| Mar|| pidev protsess  
|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
|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 debugimine ||Denis/Lauri|| 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 88: Line 133:


=== 22.10. ===
=== 22.10. ===
* sai kribatud ToDo, kuhu lisandusid nimed
* sai kribatud ToDo, kuhu lisandusid nimed ja ülesanded
* esmaspäeval kell 22 on tibude lugemise aeg
* 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


== Ajakava ==
== Esialgne ajakava ==


{| border=1
{| border=1
Line 100: Line 172:
| '''Helid''' ||Mitte nii oluline||lahe ||Denis ||03.11.  
| '''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''' || '''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 (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''' || '''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 (board)''' || '''Levelite klass'''. Punkti ja leveli arvestus || ||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 ||
| '''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

Space Totris alpha X

Space Totris RC1

Space Totris 1.0

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

Ü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.