RobottiHepalon (eli miten sen piti toimia)

Ryhmämme aloitti roboturnaus-haasteen lähestymisen OLOssa esiintyneen robotti labyrintissä-ongelman pohjalta. Heti alussa oli siis selvää, että robotista koodataan sellainen, että se selviytyy labyrintistä, joka on mielivaltaisen kokoinen ja muotoinen, siinä voi olla seiniä ja avointa tilaa, käytävät voivat haarautua ja johtaa umpikujiin… Ainoa järkevä keino robotin toteuttamiseen oli siis selvästi se, että esimerkiksi umpikujaan joutuessaan robotti muistaisi mistä on tullut ja pyrkisi ”peruuttamaan”, sekä valitsemaan sen jälkeen suunnan, missä se ei ole vielä ole käynyt. Assistentiltamme saadun vihjeen avulla päättelimme, että käytyjen ruutujen koordinaatit pitäisi saada talletettua robotin muistiin, jotta se ei palaisi takaisin umpikujiin vaan menisi siihen suuntaan, mistä sen on mahdollista liikkua paikkaan, missä se ei ole vielä käynyt.

<Olli>Hmmh joo. Yritän parhaani mukaan kertoa robotin toimintaperiaatetta vähän tarkemmin mitä yllä on. Korjata saa ja pitääkin jos huomaa jotakin mitä en muistanut oikein.
Pääperiaate oli se, että kulkusuunnat oli priorisoitu seuraavasti: 1. pohjoinen, 2. itä, 3. etelä ja 4.länsi. Jokainen ruutu missä käytiiin tallennettiin käytyjen ruutujen listaan, tässä käytimme arrayList -toteutusta. Lisäksi jokaisessa ruudussa katsottiin erikseen moneenko suuntaan siitä olisi mahdollista kulkea. Jos ruudusta pääsi kolmeen tai useampaan ruutuun,  ruutu olisi kiinnostava myös myöhemminkin, sillä tulosuunnan ja nyt edettävän suunnan lisäksi jäisi vielä yksi mahdollinen kulkusuunta auki. Käytimme apuna pinoa, johon robotti tallentaisi kyseiset ruudut. Pinon päällimmäiseksi jäisi tällöin viimeisin kiinnostava ruutu. Mikäli robotti kohtaisi umpikujan, tarkoituksemme oli, että otettaisiin kiinnnostavista ruuduista päällimmäinen ja palattaisiin siihen. Ja siitä jatkettaisiin sitten kohti väljempiä vesiä. Ilmeisesti paluureitti kiinnostavaan ruutuun oli myös tarkoitus tallentaa pinoon. Päädyimme lopputulokseen, että tällä tavalla toteutettu robotti olisi voittamaton (ainakin melkein). Kohtasimme hienoisia aika- ja tietotaitopuutteita varsinki paluureitin toteuttamisessa, joten robotista ei tullutkaan ihan täydellistä. Noh tällä kertaa annoimme hieman tasoitusta kanssakilpailijoille, ehkä liikaakin..

0 Responses to “RobottiHepalon (eli miten sen piti toimia)”



  1. Jätä kommentti

Vastaa

Please log in using one of these methods to post your comment:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s





%d bloggers like this: