'Robotti' aiheen arkisto

Ryhmätyöstä…

Vielä kerran palaan tähän aiheeseen, eli omaan robottiimme ja sen tekemiseen. Suunnitteluhan jäi lähinnä ajatustasolle, eikä tarkkaa tietoa siitä, mitä robotin pitäisi tehdä ja mitä tarkistuksia tehdä ja missä vaiheessa! Luulenpa, että ongelmamme ei ollut tahdon asia, sen puute, vaan pikemminkin organisointiongelma. Kaikki eivät tienneet missä ja milloin koodataan. Henri hoiti alun lähes yksin, ja ihan ymmärrettävästi paloi loppuun yksintekemisen kanssa. Loppuvaiheessa sitten Ollin ja Astan kanssa sitä vääntäessämme olimme suoraan sanottuna pihalla, mitä nyt lähtisimme tekemään.

Organisoinnin puute näkyi myös bottia tehdessä. Kaikki eivät päässeet yhteisiin koodaussessioihimme paikalle, ja tämän takia jäivät täysin ulkopuolelle koko tekemisestä. Pienellä, 3-4 hengen porukalla kasasimme koko botin. Hauskaa tässä on se (nyt vasta jälkikäteen ajateltuna), että porukka oli lähes sama kuin robotin viimemetreillä. Eipä siinä, ainakin me opimme jotain!

Itse olen tyytyväinen, että pääsin mukaan tekemään kumpaakin. Robottialgoritmit olivat kyllä siinä vaiheessa erittäin haastavia. Ensimmäistä kertaa piti ottaa omat aivot käyttöön; ei voinut vain rauhassa seurata tarkkaan kirjoitettua ohjeistusta siitä, mitä mikäkin metodi tekee. Robottia koodatessani, tai ehkä suurimmaksi osaksi kuitenkin sen koodausta seuratessani opin paljon lisää for-lauseesta ja listoista sekä myös pinosta, jonka käyttö algoritmissämme kuitenkin epäonnistui valitettavasti täysin. Mutta seuraaviin java-tehtäviin tästä kuitenkin oli apua. Uskalsin jo itse tehdä joitain omia ratkaisuja. Ja mikä fiilis taas niissä onnistuttuani (tätä ei tapahtunut joka kerta).

Koodin sisältäminen on aina tuottanut minulle vaikeuksia, ja robotin kanssa siihen käsiksi käyminen vei aikaa. “Jos olisi ollut enenmmän aikaa”, oli mielessä palautushetkellä, “olisimme saaneet robottialgoritmin toimivaksi.” No niin no, emme aloittaneet tarpeeksi ajoissa!

 

-Meri

Mullakin meinas unohtua robottiturnauksen tunnelmista kirjoittaminen.. Noh, myönnän että mun työpanos ei ollu kauheen suuri.. Johtui ehkä osittain siitä, että mun ohjelmointitaidoista ei olis  ainakaan kauheesti edes ollu apua, ja olin myös estynyt tulemaan silloin perjantain robosessioon. Mutta olisin voinu silti olla enemmän osallisena! Joidenkin muiden aktiivisemman osanoton ansiosta syntynyt robotti ei ihan voittanut, mutta eihän se meitä ihan kauheesti lannistanut. Nyt on sitten työn alla botti, jonka kimpussa  ollaan koko ryhmä oltu jo hienon paljon. Ollaan saatu jo paljon aikaan :)

Ens viikon teoriatehtävän aihe, siis säikeet, kuulosti alkuun taas ihan oudolta,  mutta parin kalakirjan tutkimiskerran jälkeen alkoi aihe hahmottua. Ja niinpä sain äsken jo käsitekartan valmiiksi! Turvauduin siis taas karttaan, niiden tekeminen kun on vähän mielenkiintoisempaa verrattuna esseen kirjoittamiseen. Aikaisemmin on noiden teoriatehtävien tekeminen jääny ihan sinne viime tippaan, mutta nyt oli pakko varautua jo ens viikkoon, josta on tulossa melko kiireinen muiden kokeiden takia.

Anu

Robosta & botista

Ääks, olin täysin unohtanut kirjottaa aiheesta robotti, tosin hirveästi ei varmaan juttua irtoakaan sillä oma panos ryhmätyöhön oli jokseenkin mitätön. Muutamissa aivoriihissä tuli mukana istuttua, mutta varsinainen työ jäi kyllä muutamien ahkerien ja osaavien ryhmäläisten harteille, kiitoksia vain!! Tekosyyksi voisi nyt listata ainakin omat puutteelliset ohjelmointitaidot :o

Jep mutta. Seuraava ryhmätyö, botti, lähestyy jo, ja aion tällä kertaa yrittää olla loisimatta. Tällä viikolla työstimmekin jo Astan, Anun ja Teemun kanssa jotakin hyvin alkeellista, mutta pääasia on alkuunpääseminen!! Oli ainakin kiva huomata että sai JOTAIN aikaan. Botin tekeminen onnistunee ryhmätyönä vähän robottia paremmin, sillä tässä jokainen voi itsekseen toteuttaa aina jonkin ominaisuuden.

Huomenna jatkamme botin työstämistä, nähdään!

-Ulla

Robofiiliksiä

Olen sitä mieltä, että meidän robottimme oli paras kaikista! Ajatuksemme siitä, miten robotti toimisi hyvin ja nopeasti, voitti kaikki muut robotit. Ongelma oli vain siinä, että emme saaneet hienoja suunnitelmiamme koodin muotoon.

Asiaan ehkä vaikutti se, että emme aloittaneet ajoissa. Lisäksi joukostamme puuttuu himokoodari. Meillä kaikilla on siis elämät :) Hyvä me!! Annan tässä vaiheessa kunnian kaikille niille, jotka koodasivat robottiamme, sillä tiedän että vaikka useita tunteja vietinkin tietokoneen vieressä, kovasti hengessä mukana, minusta ei ollut hommassa merkittävää apua. Olen silti ylpeä itsestäni, sillä ymmärsin robon toimintaperiaatteen, vaikka ongelmiin en keksinytkään ratkaisua :)

Voisi skarpata seuraavan ryhmätehtävän eli irkkibotin kanssa.

- Asta

6. OLO – rekursio

Ensiksi voisi puida viimekertaista OLO-sessiota. Kysehän oli siis tapaus 6:n purku, aiheena rekursio. Koska toimin tapauksen sihteerinä, niin voisin hieman summata, mitä purussa pähkäilimme (mikäli nyt enää muistan). Kävimme läpi oppimistavoitteet, jotka olivat suoraan tapauksessa annetut tehtävät, sekä mietimme rekursion määrittelyä ja roolia Javassa. Päädyimme muistaakseni johonkin seuraavansuuntaiseen: Javassa rekursiota käytetään siten, että metodi kutsuu itseään itse, tai toisen metodin kautta. Monessa tilanteessa se lyhentää koodia ja helpottaa ohjelmoimista. Riskinä on kuitenkin ikuinen looppi, jos rekursiota käyttää väärin. Tärkeimmät pointit tämän välttämiseksi olivat varmasti seuraavat:

  1. Rekursiolla on päätepiste
  2. Rekursio etenee jatkuvasti tätä päätepistettä kohti

Robotin koodauksesta sen verran, että omalta osaltani en ollut kehuttavasti kyseisen labyrinttisuunnistajan luomisvaiheissa kovinkaan aktiivisesti mukana. Urakassa olisi ehkä voinut panostaa enemmän suunnittelupuoleen ja työnjakoon. Suunnitelutilaisuuden (jonne en itse päässyt) jälkeen olisi kaivannut ehkä jatkumoa yhteiselle tekemiselle. Kun muutaman kerran yksin yritin koodia katsella, niin en päässyt puuta pidemmälle. Ja kun sitten viimeisinä päivinä homma ilmeisen suurella intensiteetillä tehtiin (mistä kiitokset asianomaisille!) niin allekirjoittaneen aikataulu ei antanut periksi irroittautua mukaan. Toisaalta oma aktiivisuus asiassa ei varmastikaan olisi ollut kiellettyä, joten turha marmattaa. Noh. Botin kanssa toivottavasti toisin. Siperia opettaa, jne…

Koko kurssista vielä muutama henkäys. Ohjelmointi sujuu jo melkein rutiinilla ja jollain kierolla tavalla (ainakin aina näin jälkeenpäin) on melkeinpä miellyttävää kokemus pakertaa kokonainen perjantai parin viikon välein koodin parissa. Käsitekartan boomerangistakin on toivuttu (Vesa, milloin heität taas takaisin?) ja essee todettu paremmaksi vaihtoehdoksi hoitaa kirjallinen ulosanti. Vahva usko on, että joskus jopa maaliin tullaan. Koodausjoulua odotellessa. (ja kirjoitusvireitä pahoitellessa: en jaksa lukea läpi)

Fiilikset robosta

Hieman omia fiiliksiä robotin tekemisestä:

Kuten jo todettiin robottiturnaus ei mennyt ihan lapaseen.. Tekeminen jäi ikävästi taas viimetippaan ja toteutus oli vajavainen. Mielestäni saimme toteutuksen ajatustasolla erittäin hyvin suunniteltua. Itse koodaaminen osoittautui kuitenkin yllättävän kinkkiseksi näillä koodaustaidoilla. Itselleni robotin koodaamista oli aluksi aika vaikeata hahmottaa.. Jälkeenpäin sanottuna se ei olisi ollut ehkä niin vaikeata. Iso kiitos kuuluu Henrille, joka panosti robottiin paljon ja sai sen hyvälle alulle! Kiitos kuuluu myös eräälle geneeriselle tikkiläiselle, joka hädän hetkellä hieman assaroi minua, Meriä ja Astaa. Mielestäni meidän ryhmässä oli positiivista, että niin moni osallistui robotin tekemiseen. Muita ryhmiä vakoilleena tiedän, että usein yksi ihminen hoiti koko homman. Ei muuta kun nokka kohti irkkibottia ja hoidetaan se ajoissa kuntoon!!

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..

Ja eikun robotoimaan!

Toinen java-tehtävä on jo toivottavasti saatu palautettua, ja ajoissa, sillä minulla on teille kaikille hyviä uutisia: eli sain nyt vihdoin Unix-aapisenkin auki (ensimmäistä kertaa) ja luotua (pienellä avustuksella) kotihakemistooni oloryhmämme jäsenistä koostuvan ryhmän! Eli päästään kaikki koodaamaan Hepalonrobottiamme!

Ryhmä on siis nimellä a-hepo, nimihän piti olla “hepo” ja a-kirjain tuossa edessä tuottikin ongelmia, kun yritin lisätä loputkin ryhmästämme käyttäjiksi. Mutta nyt pitäisi toimia, eli hakemistossa nimeltä robottiturnaus/ on kaikilla kirjoitus- ja lukuoikeus! Sieltä löytyy luokka Robottihepalon.java, jota sitten ahkerasti päivitellään :)

-Meri

Uuteen viikkoon ja kohti robottiturnausta

Moikka!

Javatehtävät on toivottavasti onnistuneesti palautettu. Itse onnistuin tekemään 1,5 tuntia ennen salibandypeleihin lähtöäni yhteen if-lauseeseen muutoksen, joka kokonaan esti palojen lisäämisen Pelimaailmaan! Ei paljoa naurattanut, mutta onneksi tuntien taistelun lopputulos oli onnellinen: sain ohjelmani toimimaan haluamallani tavalla.

Toivottavasti kaikki pääsevät mahdollisimman nopeasti seuraavan teoriatehtävän kimppuun. Tuleva viikko näyttää varmasti paljon suuntaa robottiturnauksen onnistumiselle, joten toivottavasti heti alkuviikosta saadaan vauhti päälle. Ensimmäinen tapaaminen koodaamisen merkeissä sovittiin maanantaiksi, javaharjoituksen jälkeen kello 12-14. Merin nettisivuille tulee kansio, jossa meidän koodia/koodeja säilytetään. Toivottavasti saadaan muokkaaminen toden teolla käyntiin jo maanantaina.

Ylihuomiseen!

4-ryhmän tuskailuja (4. OLO)

OLO tapaus 4 tehtävä 4 on osoittautunut melko haasteelliseksi. Lyötyämme viisaat päämme yhteen (ja tutkailtuamme edellisten vuosien algoritmeja) tulimme siihen lopputulokseen, että robottia voisi ohjeistaa pyrkiä siirtymään ruudusta toiseen aina tietyssä järjestyksessä (esim. ensisijaisesti pohjoiseen, jollei se onnistu tai robotti on siellä jo ollut, pyrkii se seuraavaksi itään, sitten etelään jne.). Robotti tulee myös ohjeistaa pitämään esim. koordinaatistolla lukua siitä, missä ruuduissa se on jo ollut ja umpikujan tullessa eteen (tai esim. sen kuljettua silmukan kokonaan läpi) palaamaan kulkemaansa reittiä takaisin, kunnes se tulee ruutuun, josta voi mennä sellaiseen ruutuun, jossa se ei vielä ole ollut. Esiin otettiin myös mahdollisuus muodostaa eri vaihtoehdoista pino, josta eri suuntavaihtoehdot voi ottaa.

Hedelmällistä yhteistyötä, mutta assaria tuli välillä ikävä. ;-)

4-ryhmän 4 hurjaa

Henri, Iija, Meri ja Olli


 

marraskuu 2009
ma ti ke to pe la su
« tam    
 1
2345678
9101112131415
16171819202122
23242526272829
30