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\"!!