{"id":6732,"date":"2022-01-11T21:38:58","date_gmt":"2022-01-11T19:38:58","guid":{"rendered":"http:\/\/www.kameli.net\/marq\/?p=6732"},"modified":"2022-01-11T23:59:59","modified_gmt":"2022-01-11T21:59:59","slug":"isikoodausta-kellotraineri","status":"publish","type":"post","link":"http:\/\/www.kameli.net\/marq\/?p=6732","title":{"rendered":"Isikoodausta: kellotraineri"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Tiistai-illan iloksi tuli v\u00e4k\u00e4stetty\u00e4 pitk\u00e4st\u00e4 aikaa per\u00e4ti hieman koodia. Juniorin kanssa on opeteltu viime aikoina viisarikellon ajan lukemista Muumi-lelukellolla, mist\u00e4 p\u00e4lk\u00e4hti p\u00e4\u00e4h\u00e4n ajatus digitaalitekniikan hy\u00f6dynt\u00e4misest\u00e4 samaan hommaan. Tietska kun jaksaa arpoa ja kysell\u00e4 aikoja paljon sitke\u00e4mmin kuin v\u00e4s\u00e4ht\u00e4nyt is\u00e4ukko. Reilun puolen tunnin Processing-neppailun j\u00e4lkeen syntyi ilmeisesti toimiva <a href=\"http:\/\/www.kameli.net\/~marq\/processing\/kellotraineri.pde\">kellotraineri.pde<\/a>, joka antaa v\u00e4lily\u00f6nti\u00e4 takomalla ensin uuden ajan ja sitten n\u00e4ytt\u00e4\u00e4 ratkaisun tekstin\u00e4 alareunassa:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a href=\"http:\/\/www.kameli.net\/marq\/wp-content\/uploads\/2022\/01\/kellotraineri.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.kameli.net\/marq\/wp-content\/uploads\/2022\/01\/kellotraineri.png\" alt=\"\" class=\"wp-image-6733\" width=\"399\" height=\"448\" srcset=\"http:\/\/www.kameli.net\/marq\/wp-content\/uploads\/2022\/01\/kellotraineri.png 797w, http:\/\/www.kameli.net\/marq\/wp-content\/uploads\/2022\/01\/kellotraineri-267x300.png 267w, http:\/\/www.kameli.net\/marq\/wp-content\/uploads\/2022\/01\/kellotraineri-768x863.png 768w\" sizes=\"auto, (max-width: 399px) 100vw, 399px\" \/><\/a><figcaption>Karu, mutta pelkistetty n\u00e4kemys kellotaulusta<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Natiainen tuntee jo tavallisen kellotaulun aika hyvin, joten nostin samalla vaikeustasoa j\u00e4tt\u00e4m\u00e4ll\u00e4 numerot pois monien rannekellojen tapaan. Samassa pelkistyksess\u00e4 saivat menn\u00e4 my\u00f6s minuuttiviivat. Kellonaikoja arvotaan nyt viiden minuutin tarkkuudella, mutta suurempi tarkkuus ei olisi suuri lis\u00e4ys. Koodipuoli ei ollut kaikkiaan j\u00e4rin haastava, mutta jokunen pikkuinen p\u00e4hkin\u00e4kin mukaan sent\u00e4\u00e4n mahtui purtavaksi:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Miten muutetaan tunnit ja minuutit viisarien asennoksi? Harkintaa vaati l\u00e4hinn\u00e4 tuntiviisari, jonka tietysti pit\u00e4\u00e4 liikkua my\u00f6s minuuttien mukana.<\/li><li>Miten tulostetaan kellonaika luettavana tekstin\u00e4? Eri tapauksia ovat &#8220;tasan&#8221;, &#8220;puoli&#8221;, &#8220;yli&#8221; ja &#8220;vaille&#8221;.<\/li><li>Ylim\u00e4\u00e4r\u00e4isen\u00e4 kompastuskiven\u00e4 pit\u00e4\u00e4 viel\u00e4 tunnistaa erikoistilanteet, joissa siirryt\u00e4\u00e4n kahdestatoista yhteen, kuten 12:45 ts. &#8220;viisitoista vaille yksi&#8221;.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kohtuullisella takomisella n\u00e4ytt\u00e4isi silt\u00e4, ett\u00e4 sain algoritmintyng\u00e4n k\u00e4sittelem\u00e4\u00e4n kaikki tilanteet oikein \u2013&nbsp;joku erikoistapaus saattaa toki viel\u00e4 r\u00e4j\u00e4ht\u00e4\u00e4, mutta ainakaan toistaiseksi sellaista ei tullut vastaan. Hetken aikaa mietin, jaksaisinko m\u00e4p\u00e4t\u00e4 viel\u00e4 numerot tekstiksi tyyliin 11 -&gt; yksitoista, mutta siit\u00e4 tuskin olisi ollut sanottavaa hy\u00f6ty\u00e4. Kaikenlaista parannettavaa olisi toki helppo keksi\u00e4: rajattu vastausaika, animointeja, viitt\u00e4 minuuttia tarkemmat kellonajat, numerokelloon vertailu ja niin edesp\u00e4in. Ehk\u00e4p\u00e4 niit\u00e4 sitten joskus tarpeen mukaan. Jo t\u00e4ss\u00e4kin muodossaan kellotraineri on ihan hy\u00f6dyllinen ja liittyy muiden, hetken viihdytt\u00e4neiden isikoodausten, kuten liikennevalosimulaattorin, n\u00e4pp\u00e4imist\u00f6trainerin ja yksinkertaisten piirto-ohjelmien seuraan.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tiistai-illan iloksi tuli v\u00e4k\u00e4stetty\u00e4 pitk\u00e4st\u00e4 aikaa per\u00e4ti hieman koodia. Juniorin kanssa on opeteltu viime aikoina viisarikellon ajan lukemista Muumi-lelukellolla, mist\u00e4 p\u00e4lk\u00e4hti p\u00e4\u00e4h\u00e4n ajatus digitaalitekniikan hy\u00f6dynt\u00e4misest\u00e4 samaan hommaan. Tietska kun jaksaa arpoa ja kysell\u00e4 aikoja paljon sitke\u00e4mmin kuin v\u00e4s\u00e4ht\u00e4nyt is\u00e4ukko. Reilun puolen tunnin Processing-neppailun j\u00e4lkeen syntyi ilmeisesti toimiva kellotraineri.pde, joka antaa v\u00e4lily\u00f6nti\u00e4 takomalla ensin uuden ajan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,24],"tags":[],"class_list":["post-6732","post","type-post","status-publish","format-standard","hentry","category-koodi","category-softat"],"_links":{"self":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/6732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6732"}],"version-history":[{"count":2,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/6732\/revisions"}],"predecessor-version":[{"id":6735,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/6732\/revisions\/6735"}],"wp:attachment":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6732"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}