Isikoodausta: kellotraineri

January 11th, 2022

Tiistai-illan iloksi tuli väkästettyä pitkästä aikaa peräti hieman koodia. Juniorin kanssa on opeteltu viime aikoina viisarikellon ajan lukemista Muumi-lelukellolla, mistä pälkähti päähän ajatus digitaalitekniikan hyödyntämisestä samaan hommaan. Tietska kun jaksaa arpoa ja kysellä aikoja paljon sitkeämmin kuin väsähtänyt isäukko. Reilun puolen tunnin Processing-neppailun jälkeen syntyi ilmeisesti toimiva kellotraineri.pde, joka antaa välilyöntiä takomalla ensin uuden ajan ja sitten näyttää ratkaisun tekstinä alareunassa:

Karu, mutta pelkistetty näkemys kellotaulusta

Natiainen tuntee jo tavallisen kellotaulun aika hyvin, joten nostin samalla vaikeustasoa jättämällä numerot pois monien rannekellojen tapaan. Samassa pelkistyksessä saivat mennä myös minuuttiviivat. Kellonaikoja arvotaan nyt viiden minuutin tarkkuudella, mutta suurempi tarkkuus ei olisi suuri lisäys. Koodipuoli ei ollut kaikkiaan järin haastava, mutta jokunen pikkuinen pähkinäkin mukaan sentään mahtui purtavaksi:

  • Miten muutetaan tunnit ja minuutit viisarien asennoksi? Harkintaa vaati lähinnä tuntiviisari, jonka tietysti pitää liikkua myös minuuttien mukana.
  • Miten tulostetaan kellonaika luettavana tekstinä? Eri tapauksia ovat “tasan”, “puoli”, “yli” ja “vaille”.
  • Ylimääräisenä kompastuskivenä pitää vielä tunnistaa erikoistilanteet, joissa siirrytään kahdestatoista yhteen, kuten 12:45 ts. “viisitoista vaille yksi”.

Kohtuullisella takomisella näyttäisi siltä, että sain algoritmintyngän käsittelemään kaikki tilanteet oikein – joku erikoistapaus saattaa toki vielä räjähtää, mutta ainakaan toistaiseksi sellaista ei tullut vastaan. Hetken aikaa mietin, jaksaisinko mäpätä vielä numerot tekstiksi tyyliin 11 -> yksitoista, mutta siitä tuskin olisi ollut sanottavaa hyötyä. Kaikenlaista parannettavaa olisi toki helppo keksiä: rajattu vastausaika, animointeja, viittä minuuttia tarkemmat kellonajat, numerokelloon vertailu ja niin edespäin. Ehkäpä niitä sitten joskus tarpeen mukaan. Jo tässäkin muodossaan kellotraineri on ihan hyödyllinen ja liittyy muiden, hetken viihdyttäneiden isikoodausten, kuten liikennevalosimulaattorin, näppäimistötrainerin ja yksinkertaisten piirto-ohjelmien seuraan.

Filed under: koodi,softat

Kommentin kirjoitus

You must be logged in to post a comment.

RSS feed for comments on this post.


Kommenttien virta

Aiheet