Athenessa tapahtuu!

Mehän haluttiin bottiin oikeasti hyödyllisiä ominaisuuksia, jotka tarjoavat jotakin käyttistä infolaisille. Botti ei siis saanut olla pelkkä ärsyttävä toistaja, lelu tai ylipäänsä mikään turha tyhjäntoimittaja. Rakas kiltamme Athene on äärimmäisen aktiivinen lähes kaikkien jäsenten osalta, ja killan tapahtumiin otetaan aktiivisesti osaa suurillakin joukoilla. Päättelimme, että tällainen tapahtumankertoja voisi olla kaikille hyödyksi, sillä kukaan ei voi muistaa, mitä seuraavaksi tapahtuu, ja missä.

Loimme ominaisuuden !tapahtuma. Tällä komennolla botti etsii Athenen tapahtumakalenterista seuraavan tapahtuman ja kertoo sen kysyjälle. Koodiin otimme mallia Vesan toteuttamasta Mogaripostaus-etsijästä. Käytimme bufferedReader-lukijaa, joka etsi sivulta ensimmäisen tummennetun rivin, toisin sanoen koodinpätkän <br><br><b><p>, ja lopettaa kyseisen rivin lukemisen, kun vastaan tulee </b>. Tämä tekstinpätkä sitten tulostetaan kysyjälle vastaukseksi. Ominaisuus tehtiin omaan Tapahtuma-luokkaansa ja toteutettiin Hepalon-luokassa luomalla uusi olio aina kun joku lähettää IRC-kanavalle viestin ”!tapahtuma”. Tämä tapahtumaolio sitten kutsuu Tapahtuma-luokan metodia, joka tulostaa tekstin kanavalle.

Samaan aiheeseen liittyen keksimme toisen ominaisuuden. Mitä kaikki Athenelaiset tekevät tapahtumien jälkeen? -No irkkaavat! Ja missä kunnossa kaikki siinä vaiheessa ovat? -No ihan helvetin moisessa kännissä!

Tämä innosti meitä tekemään ominaisuuden, joka kertoo irkissä aamuyöstä, tai milloin tahansa, oleskelevalle sankarille promillemäärän ja tämänhetkisen olotilan, jos sankarimme ei sitä itse huomaa. Ominaisuus toimii syöttämällä komento !alkometri m/n(sukupuoli) 70(paino, kg) 5(annosmäärä). Teimme toiminnolle vielä ”apuviestin”, joka tulostuu, jos komento on syötetty jotenkin väärin.

Toteutimme alkometrin Hepalon-luokkaan. Perusteluja tälle ratkaisulle voisi keksiä vaikkapa millä mitalla, mutta siisteyden takia sekin olisi voinut olla toteutettuna omassa luokassaan. Alkometrin ”loimme” itse. Arvoja ei siis syötetä minkään sivuston valmiiseen laskukaavaan, vaan itsekoodaamamme kaava laskee promillemäärän sukupuolen, painon ja nautitun annosmäärän perusteella. Annosmäärä on tietysti vähän kyseenalainen: kukaan ei kuitenkaan muista kuinka monta annosta on juonut, ja tuloskin on totuudenmukainen vain, jos kaikki annokset on nautittu lyhyen aikavälin sisällä. Tämä ei kuitenkaan estä toimintoa olemasta äärimmäisen hauska.

Itse toteutus sujui nopeasti ja sujuvasti. Ongelmiin ei juurikaan tarvinnut pysähtyä. Laskukaava ei ole kovin vaikea, käytimme netistä löytynyttä peruskaavaa. Ja neljännessä ohjelmointitehtävässä käytetty lauseen splittaus ja parsetus olivat avuksi, kun botti tarkistaa onko komento syötetty oikein.

Viimeisin lisäys bottikoodiin oli Matti-luokka, joka kaikille kiinnostuneille tai muuten vain tarvetta lisäsanonnoille tunteville antaa valmiin repliikin random-generaattorilla Matti Nykäsen arkistoiduista lausahduksista. Internet, tuo hyvä ystävämme, tarjosi pitkän litanian tällaisia lyhyitä ja hieman pidempiä Matin suusta tulleita pätkiä. Sieltä sitten kopioitiin luokkaan lista lauseita, joista botti arpoo satunnaisesti yhden. Tämä toiminto on hyödyllinen ja ennen kaikkea erittäin tarpeellinen siinä vaiheessa, kun kaikki on jo sanottu ja jotain kuitenkin pitäisi keksiä, ettei tuppisuina istuttaisi, edes irkissä. Matilla kun on aina jotain sanottavaa.

-Meri

0 Responses to “Athenessa tapahtuu!”



  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: