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.