Luku 2.5: Tehtävä: The Robots
Tästä sivusta:
Pääkysymyksiä:
Mitä käsitellään? Yksikkötestaus jatkuu.
Mitä tehdään? Toteutetaan yläluokan metodi alaluokissa.
Suuntaa antava vaativuusarvio: Keskivaikea
Suuntaa antava työläysarvio: 1-2 tuntia
Pistearvo: 200
Bonus: +5 % omista pisteistä aikaisesta palautuksesta.
Intro
Tässä simuloidaan erilaisia robotteja suorakaiteen muotoisessa ruuduista koostuvassa robottimaailmassa.
Luokista
Lyhyt yhteenveto luokista:
RobotWorld
: kaksiuloteinen, suorakaiteen muotoinen, ruutumainen maailma, joka toimii robottisimulaation ympäristönä.Square
: ruutu, joista robottimaailma koostuu. Ruutu voi olla tyhjä tai sisältää robotin tai seinän.Robot
: robotti, joka asustaa ruutumaailmassa.Coordinates
: koordinaattipari (x, y), jolla voidaan yksilöidä yksi ruutu robottimaailmassa.Spinbot
: robotin aivot, määrittelee kuinka siihen liitetty robotti liikkuu.directions
: moduuli, johon on kerätty liikkumisessa käytettyjä ilmansuuntia edustavat monikkovakiot ja funktiot.
Osien suhteet lyhyesti
- Jokainen robottimaailma koostuu yhdestä tai useammasta ruudusta. Jokainen ruutu on osa jotain robottimaailmaa. Ruudun sijainnin robottimaailmassa määrittelee koordinaattiolio.
- Robottimaailma voi olla tyhjä tai siinä voi olla useampiakin robotteja. Robotti voi sijaita yhdessä maailmassa kerralla.
- Ruudussa voi olla robotti tai se voi olla tyhjä. Robotti voi olla yhdessä ruudussa kerrallaan.
- Robotin sijainnin maailmassa määrittää koordinaattiolio.
- Robotin kulkusuunta on aina jokin pääilmansuunnista.
- Yksi robottiaivo (spinbot, nosebot, ...) ohjaa yhtä robottia. Robotilla on yhdet aivot ohjaamassa sitä.
Luokissa lisää yksityiskohtia.
Tehtävänanto
Lue molemmat PyUnit-ohjeet, mikäli et vielä ole lukenut niitä. Halutessasi tee Eclipseen projekti jossa PyUnit:ia on helppo suorittaa.
Tehtävänanto löytyy A+:sta.
Huom!
Muutoksia voi vielä tulla.