Ohjelmointiharjoituksessa opetellaan metodien kirjoittamista. Tarkoituksena on soveltaa tapauksessa 3 opittuja asioita.
Tee itsellesi alihakemisto esim. Tehtava2 Unix-komennolla mkdir Tehtava2 ja sijoita kaikki tehtävässä käytetyt Java-tiedostot sinne.
Tämän ohjelmointiharjoituksen maksimipistemäärä on 100 ja läpäisyraja on 50 pistettä.
Kopioi itsellesi kaikissa tehtävissä tarvittavat tiedostot:
Huom1! Näiden valmiina annettujen luokkien toteutusta ei tarvitse ymmärtää tehtävien ratkaisemiseksi. Edellä olevien linkkien kautta pääsee käsiksi niiden dokumentaatioon, joka on tehty käyttäen javadocia.
Ilmansuunnat on koodattu seuraavalla tavalla:
Tässä osatehtävässä toteutetaan robottia kuvaavan luokan Robot
metodeja. Robotilla on
suunta (jokin ilmansuunnista) ja tieto nykyisestä huoneesta (voi
olla myös null). Robotti osaa liikkua eteenpäin
komennolla stepForward (mikäli mahdollista), tarkistaa
onko eteneminen mahdollista komennolla testForward sekä
kääntyä 90 astetta komennoilla turnLeft ja
turnRight. Osa robotin metodeista on jo toteutettu,
mutta osasta on vain otsikko.
Main1
. Täydennä
pääohjelman loppuun tarpeelliset robotinohjauskomennot
(stepForward, turnLeft, turnRight)
robotin siirtämiseksi alkupisteestä (0, 2) huoneeseen (2, 0).
Tässä osatehtävässä toteutetaan aliluokka MarchingRobot, joka osaa kulkea suoraan eteenpäin annettuun suuntaan, kunnes eteneminen ei enää ole mahdollista.
Main2
.
Tässä osatehtävässä toteutetaan aliluokka RandomRobot, joka yrittää päästä tavoitehuoneeseen liikkumalla satunnaisiin suuntiin.
Main3
.
Tässä osatehtävässä toteutetaan aliluokka SmartRobot, joka löytää tavoitehuoneen missä tahansa labyrintissa, joka ei haaraudu. SmartRobotin toiminnan tulee perustua johonkin muuhun menetelmään kuin satunnaiseen harhailuun.
Main4
.
Harjoitukset palautetaan jar-apuohjelmalla luotuina paketteina. Seuraava Unix-komento luo jar-tiedoston harj2.jar Java-tiedostoista Luokka1.java ja Luokka2.java.
jar cf harj2.jar Luokka1.java Luokka2.java
Jar-tiedoston sisällön voi katsoa komennolla:
jar tf harj2.jar
VAROITUS. Muista ehdottomasti, että ensimmäinen tiedostonimi on se tiedosto, johon haluat paketin laatia, koska muuten jar-komento kirjoittaa paketin ensimmäisen antamasti tiedoston päälle. Siten komento
jar cf Luokka1.java Luokka2.java
TUHOAA tiedoston Luokka1.java.
Valmis jar-paketti, joka sisältää KAIKKI harjoituksessa käytettävät luokat (myös valmiit luokat) lähetetään sähköpostitse liitetiedostona oman ryhmän tutorille. Kaikkien eri osatehtävien luokat palautetaan samassa paketissa, eli lähetä vain yksi viesti.
Palautus on tehtävä viimeistään keskiviikkona 24.10 klo 16.00. Jos palautus myöhästyy, jokaisen myöhässä palautetun tehtävän arvosana laskee 5 pistettä / myöhästymispäivä.