Interaktiivinen tarinankerronta



Samankaltaiset tiedostot
Interaktiivinen tarinankerronta

Ohjelmointi 2 / 2010 Välikoe / 26.3

Mikä yhteyssuhde on?

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmoinnin jatkokurssi, kurssikoe

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmistotekniikan menetelmät, koe

Java kahdessa tunnissa. Jyry Suvilehto

Olio-ohjelmointi Javalla

Testivetoinen ohjelmistokehitys

Metodien tekeminen Javalla

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Listarakenne (ArrayList-luokka)

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmoinnin perusteet, kurssikoe

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

2. Olio-ohjelmoinista lyhyesti 2.1

Javan perusteita. Janne Käki

Ohjelmoinnin perusteet, syksy 2006

Luokat ja oliot. Ville Sundberg

Ohjelmointi 2, välikoe

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

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

8. Näppäimistöltä lukeminen 8.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

UML ja luokkien väliset suhteet

JUnit ja EasyMock (TilaustenKäsittely)

4. Olio-ohjelmoinista lyhyesti 4.1

Javan GUI Scratchaajalle

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

8. Näppäimistöltä lukeminen 8.1

Jypelin käyttöohjeet» Ruutukentän luominen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Periytyminen (inheritance)

Lista luokan sisällä

20. Javan omat luokat 20.1

15. Ohjelmoinnin tekniikkaa 15.1

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Rajapinta (interface)

Luokan sisällä on lista

YHTEYSSUHDE (assosiation)

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

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

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

1. Omat operaatiot 1.1

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

ITKP102 Ohjelmointi 1 (6 op)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Luokkakirjastot. esiintymämetodien käytöstä:

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

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Sisällys. 15. Lohkot. Lohkot. Lohkot

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

C# Windows ohjelmointi perusopas

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

public static void main (String [] args)

Ohjelmoinnin perusteet Y Python

13. Hyvä ohjelmointitapa (osa 1) 13.1

TIETORAKENTEET JA ALGORITMIT

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Web Services tietokantaohjelmoinnin perusteet

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

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

1 Tehtävän kuvaus ja analysointi

Ohjelmoinnin perusteet Y Python

Tietorakenteet, laskuharjoitus 7,

Rinnakkaisohjelmointi, Syksy 2006

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

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

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Pakkauksen kokoaminen

7. Oliot ja viitteet 7.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

14. Poikkeukset 14.1

14. Hyvä ohjelmointitapa 14.1

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream

17. Javan omat luokat 17.1

Java-kielen perusteita

Oliot viestivät metodeja kutsuen

Transkriptio:

Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java tarkastettu koodi: mallikoodista on kaikki tyhjät rivit poistettu tilan säästämiseksi // Luo ohjelmakoodi, joka tulostaa tarinan alun: // Olipa kerran valoisa ja hiljainen ilta. // Olit juuri saapunut tangoharjoituksista kotiisi. Jokin oli kuitenkin vialla. // lisää koodi tähän System.out.println("Olipa kerran valoisa ja hiljainen ilta."); System.out.println("Olit juuri saapunut tangoharjoituksista kotiisi. Jokin oli kuitenkin vialla."); Tehtävä 2: Päätöksen tekeminen pääohjelmaan Main.java ei tehdä muutoksia kaynnista() metodiin määritellään esim. muuttuja vastaus valinta luetaan lukija.nextline() metodilla luettu arvo sijoitetaan vastaus muuttujaan

Tiedoston Kayttoliittyma.java tarkastettu koodi: mallikoodista on kaikki tyhjät rivit poistettu tilan säästämiseksi String vastaus; System.out.println("Olipa kerran valoisa ja hiljainen ilta."); System.out.println("Olit juuri saapunut tangoharjoituksista kotiisi. Jokin oli kuitenkin vialla. "); System.out.println("Eteisessä näkyvät ovet on maalattu uudestaan. Valitse ovi:"); System.out.println("P: Punainen ovi"); System.out.println("S: Sininen ovi"); // kysy tässä käyttäjältä syötettä lukijan avulla, ja tulosta syöte Vastaus=lukija.nextLine(); System.out.println("Valitsit: "+vastaus); System.out.println("Päädyit huoneeseen, jossa on uusia ovia. Takanasi ole. Valitse ovi:"); System.out.println("O: Oranssi ovi"); System.out.println("V: Valkoinen ovi"); // kysy tässä käyttäjältä syötettä lukijan avulla, ja tulosta syöte Vastaus=lukija.nextLine(); System.out.println("Valitsit: "+vastaus); System.out.println("Mistä näitä ovia riittää?!! Takanasi oleva ovi on taas lukossa. Valitse ovi:"); System.out.println("L: Lasiovi"); System.out.println("P: Purppurainen ovi"); // kysy tässä käyttäjältä syötettä lukijan avulla, ja tulosta syöte Vastaus=lukija.nextLine(); System.out.println("Valitsit: "+vastaus); System.out.println("Päädyit keittiöön!"); Tehtävä 3: Vastauksesta riippuva paikka pääohjelmaan Main.java ei tehdä muutoksia valinta tehdään if(ehto){ else { rakenteella merkkijonon vertailu sydeemillä muuttu.equals( verrailusana ) periaatteella, ei == merkillä

Tiedoston Kayttoliittyma.java tarkastettu koodi: System.out.println("Olipa kerran valoisa ja hiljainen ilta."); System.out.println("Olit juuri saapunut tangoharjoituksista kotiisi. Jokin oli kuitenkin vialla. "); System.out.println("Eteisessä näkyvät ovet on maalattu uudestaan. Valitse ovi:"); System.out.println("P: Punainen ovi"); System.out.println("S: Sininen ovi"); String valinta = lukija.nextline(); System.out.println("Valitsit: " + valinta); if(valinta.equals("p")){ System.out.println("Päädyit huoneeseen, jossa on uusia ovia. Takanasi ole... Valitse ovi:"); System.out.println("O: Oranssi ovi"); System.out.println("V: Valkoinen ovi"); else{ System.out.println("Mistä näitä ovia riittää?!! Takanasi oleva ovi on taas lukossa. Valitse ovi:"); System.out.println("L: Lasiovi"); System.out.println("P: Purppurainen ovi"); valinta = lukija.nextline(); System.out.println("Valitsit: " + valinta); System.out.println("Päädyit keittiöön!"); Tehtävä 4: Huone luodaan uusi luokka Huone.java (hiiren oikealla painikkeella default packages in päällä, valitaan New >java class) anna vain Class Name, ei muuta kun Huone.java on tehty, voidaan sitä käyttää Kauttoliittyma luokassa alla Huone.java ja Kayttoliittyma.java koodit

Tiedoston Huone.java tarkastettu koodi: public class Huone { private String nimi; private String teksti; // tämä on kontruktori, joka luo uuden huoneen public Huone(String uusinimi, String uusiteksti){ this.nimi=uusinimi; this.teksti=uusiteksti; // tämä metodi palauttaa huoneen tekstin public String getteksti(){ return this.teksti; public String tostring(){ return this.nimi; Tiedoston Kayttoliittyma.java tarkastettu koodi: // kun olet luonut luokan Huone, voit testata sen toimintaa täällä // luokan luomisen jälkeen seuraavan koodin: Huone eteinen = new Huone("Eteinen", "Eteisessä näkyvät ovet on maalattu uudestaan."); System.out.println(eteinen); System.out.println(eteinen.getTeksti()); // tulisi tulostaa viesti // "Eteinen" ja // "Eteisessä näkyvät ovet on maalattu uudestaan."

Tehtävä 5: Ovet toisiin huoneisiin kovin hankala saada konoiskuvaa tehtävästä jatketaan Huone luokan täydentämistä oppaassa virhe, kun puhutaan luokasta Karkkivarasto koko harjoitus tähtää javan valmiin TreeMap luokan opetteluun ainakin opettajalle asia jäi eka yrityksellä hyvin epäselväksi Tiedoston Huone.java täydennetty ja tarkastettu koodi: import java.util.treemap; public class Huone { private String nimi; private String teksti; // lisää tänne oliomuuttuja TreeMap<String, Huone> ovet; private TreeMap<String, Huone> ovet; public Huone(String nimi, String teksti) { this.nimi = nimi; this.teksti = teksti; // alusta täällä oliomuuttuja ovet kutsulla ovet = new TreeMap<String, Huone>(); this.ovet=new TreeMap<String, Huone>(); public String getteksti() { return teksti; // lisää tänne metodit lisaaovi, valitseovi ja tulostaovet public void lisaaovi(string ovi, Huone huoneeseen){ this.ovet.put(ovi, huoneeseen); public Huone valitseovi(string ovennimi){ return this.ovet.get(ovennimi); public void tulostaovet(){ for(string ovi: this.ovet.keyset()){ System.out.println(ovi+": "+valitseovi(ovi)); @Override public String tostring() { return this.nimi;

Tiedoston Kayttoliittyma.java tarkastettu koodi: Huone eteinen = new Huone("Eteinen", "Eteisessä näkyvät ovet on maalattu uudestaan."); System.out.println(eteinen); System.out.println(eteinen.getTeksti()); Huone komero = new Huone("Komero", "Jahs, kukaan ei ole pyyhkinyt pölyjä."); Huone autotalli = new Huone("Autotalli", "Noh, siellähän se mun kuplavolkkari on!"); // kun olet saanut tämän tehtävän tehtyä, voit kokeilla seuraavaa: eteinen.lisaaovi("k", komero); eteinen.lisaaovi("a", autotalli); eteinen.tulostaovet(); Huone seuraava = eteinen.valitseovi("k"); System.out.println(seuraava); // tulostaa \"Komero\"!!