Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Samankaltaiset tiedostot
Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Hakemistojen sisällöt säilötään linkitetyille listalle.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Harjoitustyö. 1. Johdanto Tehtävä

Toinen harjoitustyö. ASCII-grafiikkaa

Harjoitus 5 (viikko 48)

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

16. Javan omat luokat 16.1

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmoinnin jatkokurssi, kurssikoe

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Harjoitustyö. 1. Johdanto Tehtävä

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Harjoitus 2 (viikko 45)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmoinnin perusteet Y Python

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Sisältö. 22. Taulukot. Yleistä. Yleistä

Harjoitus 3 (viikko 39)

15. Ohjelmoinnin tekniikkaa 15.1

Java kahdessa tunnissa. Jyry Suvilehto

Jypelin käyttöohjeet» Ruutukentän luominen

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Harjoitus 4 (viikko 47)

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Ohjelmoinnin perusteet Y Python

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

dogs worlds_ugliest_dog.jpg

15. Ohjelmoinnin tekniikkaa 15.1

Sisältö. 2. Taulukot. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Harjoitus 5 (viikko 41)

Ohjelmoinnin perusteet Y Python

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

OHJ-1160 Laaja Ohjelmointi 2

Ohjelmoinnin perusteet, kurssikoe

5. HelloWorld-ohjelma 5.1

Harjoitustyö. 1. Johdanto Tehtävä

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmointi 2, välikoe

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

9. Periytyminen Javassa 9.1

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Ohjelmoinnin perusteet Y Python

4. Luokan testaus ja käyttö olion kautta 4.1

Ohjelmoinnin perusteet Y Python

18. Abstraktit tietotyypit 18.1

Ohjelmoinnin perusteet Y Python

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Harjoitus 6 (viikko 42)

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

1. Omat operaatiot 1.1

XX (1, 4) (1, 5) (2, 4) (2, 5)

Lyhyt kertaus osoittimista

5. HelloWorld-ohjelma 5.1

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

9. Periytyminen Javassa 9.1

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Ohjelmoinnin perusteet Y Python

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

14. Poikkeukset 14.1

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

12. Monimuotoisuus 12.1

Harjoitustyö Johdanto Tehtävä

Harjoitustyö Johdanto Tehtävä

Javan perusteita. Janne Käki

Kopio saamasi pelaajatiedosto (.plr) Game01-alikansioon. Valitse pelissä Continue Campaign.

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Harjoitustyö Johdanto Tehtävä

Harjoitus 6 (viikko 42)

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

7/20: Paketti kasassa ensimmäistä kertaa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Rajapinta (interface)

Ohjelmoinnin perusteet Y Python

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Transkriptio:

Harjoitustyö 1

Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Henkilökohtaista ohjausta tarjolla mikroluokissa. Sähköpostilla voi edelleen kysyä. Palautus WETO-järjestelmään noin kuukauden kuluttua. Testaus automaattisesti julkisilla ja salaisilla testeillä. Tarkka tehtävänanto julki ensi viikolla. Aloita ajoissa ja tee työtä säännöllisesti. Varaa harjoitustyön käytettiin aikaa ainakin 40 tuntia. Alustavaksi palautustakarajaksi on ajateltu sunnuntaita 3.4. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 2

Luokista Sokkelo koostuu rakenneosista, joita ovat käytävä ja seinät. Sokkelossa on mönkijä, robotteja ja esineitä. Mönkijä kerää esineitä. Robotit ovat mönkijälle vaarallisia. Kaikista sokkelon osista ja sen sisällöstä tunnetaan paikka, joka määritellään rivi- ja sarakeindeksien avulla (int, 0). Sisällölle yhteinen tieto on energia (int, 0). Mönkijällä on suunta (char) ja varasto (lista), johon voi kerätä esineitä. Myös roboteilla on suunta (char). Kirjoita luokkahierarkia, jossa on abstrakti juuriluokka sekä sokkelon osille että sokkelon sisällölle. Peri tästä luokasta joko suoraan tai abstraktin väliluokan kautta sokkelon rakenneosia mallintavat konkreettiset Kaytava- ja Seina-luokat. Tee abstrakti luokka sisällön osille ja peri tästä luokasta konkreettiset aliluokat Monkija, Robotti ja Plantti. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 3

Luokista Kapseloi luokat ja korvaa luokissa tostring-metodi. Selvitä olion tyyppi metaolion avulla luokkahierarkian juuriluokassa Lotkoluokassa. (Älä tee tyypille attribuuttia.) Toteuta Comparable-rajapinnan compareto-metodi mönkijän, robotin ja esineen yliluokassa siten, että metodissa vertaillaan energioita. Peri LinkitettyLista-luokasta OmaLista-luokka. Sijoita omaan listaa uusia listaoperaatioita. Esimerkiksi alkio lisäys siten, että alkioiden välille muodostuu kasvava järjestys. Monkija-luokan varasto on OmaLista-tyyppinen attribuutti. Käytäväpaikan sisältö sijoitetaan OmaLista-tyyppiseen listaan. Samassa käytävän paikassa voi näin olla esimerkiksi useita esineitä ja robotteja. Sokkelon osat on helpointa organisoida kaksiulotteiseksi taulukoksi, joka koostuu käytävä- ja seinäosista. Sijoita luokat pakkauksiin. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 4

Luokista Robottien liikuttamisesta vastaa kurssin kotisivuilla julkaistava apuluokka. Kurssisivuilla julkaistaan myös kaksi rajapintaa, jotka on toteutettava siten, että robottien paikan ja suunnan lukeminen ja muuttaminen on mahdollista. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 5

Pelin toiminnot lataa: lataa sokkelon osat ja sisällön. Tiedostosta luetaan myös siemenluku ja sokkelon koko. Robotteja liikutellaan siemenluvun avulla alustetun apuluokan avulla. inventoi: tulostaa mönkijän ja sen varasto tiedot näytölle. katso s: tulostaa naapuripaikan sisällön näytölle. Parametri on jonkin pääilmansuunnista: p = pohjoinen, i = itä, e = etelä ja l = länsi. kartoita kartta: tulostaa sokkelon sisällön näytölle taulukkomuodossa. liiku s: liikuttaa mönkijää yhden paikan annettuun suuntaan, mikäli mahdollista. Uudessa paikassa olevat esineet kerätään automaattisesti. Peli loppuu, kun kaikki esineet on kerätty. Mönkijä joutuu taisteluun, jos paikalla on yksi tai useampi robotti. Taistelun lopputulos määräytyy energian perusteella. Peli loppuu, jos mönkijä häviää. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 6

Pelin toiminnot muunna n: mönkijä muuntaa n kappaletta varastossa olevista esineitä energiaksi. odota: pelaaja ohittaa oman vuoronsa. tallenna: tallentaa sokkelon osat ja sisällön tiedostoon. Tiedostoon tallennetaan myös siemenluku ja sokkelon koko. lopeta: lopettaa ohjelman. Peli siirtää robotteja liikkumisen ja vuoron ohittamisen jälkeen. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 7

Tekstitiedosto Tiedot tallennetaan tekstitiedostoon sokkelo.txt. Ensimmäisellä rivillä siemenluku ja sokkelon rivien ja sarakkeiden lukumäärä. Muilla riveillä yhden sokkelon osan tai sokkeloon sisältyvän olion tiedot per yksi rivi. Rivin alussa lötkön luokan nimi. Seuraavaksi paikka ja luokan mahdolliset omat tiedot. Mönkijän esineiden rivit seuraavat mönkijän riviä. Käytävän sisällön rivit seuraavat käytävän rivejä. Kaikki tiedot erotetaan toisistaan putkimerkillä ja rivit päättyvät putkimerkkiin. Tiedot sijoitetaan tietyn mittaisiin kenttiin. Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 8

Tekstitiedosto 1 5 5 Seina 0 0 Seina 0 1 Seina 0 2 Seina 0 3 Seina 0 4 Seina 1 0 Kaytava 1 1 Monkija 1 1 100 e Kaytava 1 2... Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala 9