Meeskond "Terav Totris"

From ICO wiki
Jump to navigationJump to search

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.