The page has been modified since the last reload. Refresh now?

There are {{ pendingUpdatesCount() }} pending paragraph updates.

 

 

Harjoitustyö

{}

1. Harjoitustyö tällä kurssilla

  • on osa kurssisuoritusta ja arvioidaan asteikolla hyväksytty/hylätty. Harjoitustyö pitää olla hyväksytty ennen kuin kurssista voi saada arvosanan.
  • tehdään mielellään parityönä, mutta jos haluaa tehdä yksin, niin sekin onnistuu. Mikäli luontaista paria ei löydy, ei sitä kannata ehkä etsiäkään väkisin.
  • sisältää keskimääräisesti opiskelijaa kohti noin 30 tuntia työtä (ks. kurssin työmäärä). Parityönä tehtävän työn määrä on siis keskimäärin 60 tuntia. Paritöissä on pystyttävä esittämään kirjanpito siitä, mitä on tehty ja miten työ on jakautunut tekijöiden välillä.
  • on peli, mutta jokin muukin ohjelma käy myös

2. Vaiheistus

Harjoitustyön vaiheet

Harjoitustyön vaiheet

2.1 SVN

Harjoitustyön koko Solution tallennetaan SVN-versiohallintaan esimerkiksi TortoiseSVN:n avulla.

Kurssin SVN-versiohallinnan tietovaraston osoite on

https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2017s

2.2 Aikataulut

{}

Harjoitustyön aikataulun muodostavat neljä virstanpylvästä

  • Suunnitelma hyväksytty demo 5 palautukseen mennessä. Esittele suunnitelmasi, joka on kirjoitettu TIMiin ja kuva laitettu versiohallintaan, ohjaajalle pääteohjauksessa tai varaa sitä varten aika Korpista ohjaajalle.
  • 50 % valmis demo 8 palautukseen mennessä. Esittele työsi ohjaajalle ja varaa sitä varten aika (toissijaisesti ohjauksissa = ohjaaja katsoo jos ei ole pääteohjaukissa neuvottavien kanssa kiirettä. Tällöin on turha pitää Kiire-kylttiä esillä.). Työ pitää olla versiohallinnassa.
  • 90 % valmis julkiseen esittelytilaisuuteen mennessä, jolloin jokainen esittelee työnsä muille opiskelijoille. Työt esitellään max 15 hengen ryhmissä. Tarkoitus on antaa ja saada palautetta jotta vielä viimeisiä pikku viilauksia voidaan tehdä ennen työn lopullista hyväksymistä. HUOM. Tarkista pelisi toimivuus 1024x768 resoluutiolla ennen esittelytilaisuutta.
  • 100% valmis ja hyväksyttäminen ohjaajalla ennen kurssin ensimmäistä tenttiä. Tämän vaiheen tarkoitus on tarkastaa että työn muodolliset vaatimukset täyttyvät. Vaihe toimii myös maturiteettina, jossa varmistetaan, että opiskelija on tehnyt itse harkkatyönsä kurssin pelisääntöjen mukaisesti. Varaa aika ohjaajalta tai tule ohjauksiin.

  • etäopiskelijoille on esittelystä omat ohjeet

Jokainen aikaraja, josta opiskelija myöhästyy ennakkoon ilmoittamatta (ja ilman hyvää syytä, kuten sairastuminen), aiheuttaa puolen numeron tiputuksen kurssin kokonaisarvosanaan jokaiselta alkavalta myöhästymisviikolta. Lisäksi opiskelija, joka ei ole (ilman hyvää syytä) palauttanut versionhallintaan vähintään lähes esittelykelpoista harjoitustyötään ennen tenttiä, saa automaattisesti hylätyn arvosanan kurssista.

{}
{}
#

3. Harjoitustyön suunnittelu

Ennen harjoitustyön toteuttamista tehdään suunnitelma. Suunnitelma tehdään TIMiin ja kuva(t) laitetaan versiohallintaan, ja suunnitelma hyväksytetään ohjaajalla ennen varsinaisen työn aloittamista. Varaa aika Korpista. Ohjaajat majailevat sovittuina aikoina 4. kerroksen OTE-solun avotilassa. Kysy virastomestareilta apua jos et löydä perille.

Jos et keksi, minkä tyylisen pelin haluaisit tehdä, katso esimerkkejä, millaisia pelejä Jypelillä voi tehdä.

Suunnittelemattomia harjoitustöitä ei hyväksytä.

Suunnitelmassa pitää olla ainakin seuraavat asiat (soveltaen ei-peliharjoitustyöhön):

  1. Tekijöiden nimet
  2. Pelin nimi
  3. Pelaajien lukumäärä (1-4)
  4. Pelin taustatarina tai kuvaus pelin teemasta
  5. Pelin idea ja tavoitteet
  6. Hahmotelma pelistä (kuva tai kuvia paperilla käsin tai tietokoneella piirrettynä)
  7. Jonkinlainen kuvaus siitä, miten peli etenee
  8. Pelissä olevat oliot, niiden toiminnot ja missä suhteessa ne ovat toisiinsa
  9. Toteutuksen suunnitelma: mitä tekisin ja missä järjestyksessä? Millä aikataululla?
{}
#

3.1 Muu kuin pelimäinen aihe

Harjoitustyö voi olla myös muu kuin peli.
Yksi esimerkki voisi olla vaikkapa lukea tiedostosta suomenkielinen teksti ja lasketaan mitä vokaalia on eniten. Tai työ voi olla tietyn WWW-sivun lukeminen ja sieltä tiettyjen tietojen käsittely yksinkertaiseen muotoon. Esimerkiksi joltakin sääsivulta päivän tuuliarvojen maksimi ja keskiarvo.

Inspraatiota voi myös hakea Työaikaraportti -tutorialista tai vaikkapa täältä http://nifty.stanford.edu/. Katso tuolta CS0/CS1 tasoiset tehtävät, niiden pitäisi (suurelta osin) olla tämän kurssin osaamistavoitteiden mukaisia.

Ei-pelien tapauksessa ohjelmaan tehdyt testattavissa olevat aliohjelmat tulee testata.

Muun kuin peliharjoitustyön tekemiseen on omat itseopiskelututoriaalit.

#

3.2 Vinkkejä harjoitustyön aloitukseen

{}
#
xxxHEXJSONxxx7b227374617274223a202232323532222c2022656e64223a202233313330222c20227461736b4944457874223a20223131343036382e506c7567696e322e32314643307a6a4e766a3775222c202270726576696577223a202246616c7365222c2022746172676574466f726d6174223a20226c61746578222c2022646f4c617a79223a202246616c7365222c202266696c65223a202268747470733a2f2f6b7572737369742e69742e6a79752e66692f49544b503130322f32303136732f6c75656e746f2f6c75656e746f3130612e6d7034222c2022757365725f6964223a2022416e6f6e796d6f7573222c202269735175657374696f6e223a2022222c2022757365725072696e74223a202246616c7365222c20227461736b4944223a20223131343036382e506c7567696e32222c20227374656d223a202250616c6c6f70656c692c206a6f7373612070616c6c6f6a656e2074696c616c6c65206b75766961222c2022616e6f6e796d6f7573223a202246616c7365222c20227769647468223a2022343030222c202274797065223a20226c697374222c2022696e666f223a20224e6f6e65222c2022686569676874223a2022333030222c2022766964656f6e616d65223a20224c75656e746f203130227d
#
xxxHEXJSONxxx7b227374617274223a202234303839222c2022656e64223a202235343330222c20227461736b4944457874223a20223131343036382e506c7567696e312e344844665a376a5738634766222c202270726576696577223a202246616c7365222c2022746172676574466f726d6174223a20226c61746578222c2022646f4c617a79223a202246616c7365222c202266696c65223a202268747470733a2f2f6b7572737369742e69742e6a79752e66692f49544b503130322f32303136732f6c75656e746f2f6c75656e746f3133612e6d7034222c2022757365725f6964223a2022416e6f6e796d6f7573222c202269735175657374696f6e223a2022222c2022757365725072696e74223a202246616c7365222c20227461736b4944223a20223131343036382e506c7567696e31222c20227374656d223a2022416e6772794c65676f6e20616c6f69747573222c2022616e6f6e796d6f7573223a202246616c7365222c20227769647468223a2022343030222c202274797065223a20226c697374222c2022696e666f223a20224e6f6e65222c2022686569676874223a2022333030222c2022766964656f6e616d65223a20224c75656e746f203133227d

4. Vaatimukset

Pelissä pitää tapahtua jotakin, eli ruudulla pitää tapahtua jotain järkevää johon käyttäjä voi osallistua.

Työssä on oltava vähintään muutama aliohjelma Jypelin valmiiden aliohjelmien (Main, Begin) lisäksi.

Ohjelman pitää sisältää funktioita: näille aliohjelmille on vietävä parametri tai parametreja ja niiden on palautettava arvo.

Huomaa, että pääpaino ei ole hienossa ulkoasussa.

{}

4.1 Korppiin merkittävät kentät

Katso kurssin koodauskäytänteet.

Alla on tarkastettavien osa-alueiden lista, jonka ohjaajat tulevat tarkastamaan harjoitustyön esittelemisen yhteydessä. Jos ok niin merkintä tulee Korppiin.

  1. Nimi ja versio: Koodissa tekijän nimi ja versio (@author, @version)
  2. Kommentit: Kaikki luokat, aliohjelmat ja metodit ovat kommentoituja. Dokumenteissa kuvataan sitä, mitä aliohjelmat tekevät, ensisijaisesti ei sitä ''miten'', se kommentoidaan itse koodin sisään jos tarvitsee.
    • Voit tarkistaa dokumentaatiosi: palauta itse kirjoittamasi harjoitustyön .cs-tiedosto (usein Begin()-aliohjelman sisältämä .cs-tiedosto) myös NettiDemoWWW:llä demoksi numero 15. Paina Päivitä index.html ja katso sitten minkälainen dokumentti syntyi työstäsi. Mieti kommentteja sen mukaan.
  3. Nimeäminen: Muuttujien ja aliohjelmien nimeäminen johdonmukaista ja loogista, noudattelee C#-kielelle sovittuja käytänteitä. Aliohjelmien näkyvyys määritelty (public, private). Katso koodauskäytänteet.
  4. } + 2 tyhjää: Aliohjelmien loppusulun } jälkeen tasan 2 tyhjää riviä
  5. Ei turhia peliluokan attribuutteja. Jos jotain koko peliluokkaan näkyviä arvoja tarvitaan, pyritään käyttämään vakioita (const). Esim. kuvien olioviitteet voi kiinnittää muuttumattomaksi static readonly määreellä.
  6. Ei julkisia staattisia (public static) muuttujia. Jokaiselle attribuutille on määriteltävä näkyvyys (public, protected, private).
  7. Ei toistoa, joka olisi voitu tehdä silmukoilla tai aliohjelmilla. Myöskään aliohjelmissa ei saa olla toistoa (esimerkiksi LuoVihu1, LuoVihu2).
  8. Taulukko: Käytetään taulukkoa tai listaa.
  9. Silmukka: Ainakin yksi silmukka.
  10. Toimii: Työ toimii ainakin merkittävältä osin.
  11. Ei turhia literaaleja: Koodissa ei numeerisia vakioita, tai merkkijonoja, joiden pitäisi olla const-määreellä. Suomennettuna: et siis saa tehdä koodia esim: (y < 18) jossa 18 on nyt väärin, sen tilalle muuttuja tai vakio.
  12. ei-pelien tapauksessa osoitettu myös taito testata aliohjelmia.
{}

Mikäli omassa pelissä ei ole taulukkoa/listaa tai silmukkaa, pitää ohjaajalla esittää täysin itse tehdyn demotehtävän vastaus, missä em. asioiden osaaminen on näytetty. Tästä voi laittaa vaikka kommentin omaan harjoitustyöhön tyyliin:

// TODO: taulukko, ks: Demo 6, tehtävä 7
#

5. Kurssin lisäosat

Kurssin lisäosana voi suorittaa itseopiskeluna seuraavat lisäkurssit:

  • ITKP106
    • 1 op - kurssilla tehty peli mobiilipeliksi
    • +1 op - mobiilipeli julkaistu kauppapaikassa
  • ITKP107
    • 1 op - graafinen käyttöliittymä harjoitustyöhön (ei-peliharjoitustyön tekijöille) tai graafinen käyttöliittymä jonkin pelissä olevan tiedoston käsittelemiseksi (peliharjoitustyön tekijöille)
    • +1 op - em graafinen käyttöliittymä myös puhelimessa toimivaksi
    • +1 op - em. puhelinkäyttöliittymä julkaistu kauppapaikassa

Tähän liittyviä tarkentavia linkkejä tulee myöhemmin.