Takaisin projekteihin

UkoduS60, Sudoku-ratkaisija S60-älypuhelimiin

Sudoku, alunperin Yhdysvalloissa 70-luvun lopulla kehitetty älypeli, on monien vaiheiden jälkeen rantautunut tänne Suomeenkin. Siinä välissä peli koukkasi Japanin kautta hakemassa uuden nimen. Tätä nykyä Sudokuja löytyy useista sanoma- ja aikakauslehdistä.

Eräs säätäjistä sai vihiä uudesta ilmiöstä, kun työkaverit alkoivat viihtyä aamuisin kahvihuoneessa lehden kimpussa tavallista pidempään. Kyseinen säätäjä ei älypeleistä muuten piittaa, mutta Sudoku näytti sopivalta ongelmalta tietokoneen ratkaistavaksi. Alkuperäinen ratkaisijan prototyyppi syntyi Linux PC:llä, Python-ohjelmointikielellä. Tästä se kääntyi jouhevasti S60-puhelinten Python-toteutukseen.

Nyt esiteltävä ohjelma on kuitenkin alusta asti uudelleen suunniteltu. Se on tehty C++:lla S60-puhelimille ja on erittäin pienikokoinen: yhdeksän kilon asennuspaketti, 18 kiloa puhelimeen asennettuna. Lisäksi se on nopea. Tyypillinen lehdessä oleva Sudoku ratkeaa silmänräpäyksessä. (Itse asiassa ratkaisu löytyisi yleensä kyllä samantien, mutta ohjelma piirtää välivaiheita ruudulle sekunnin tai pari ihan huvin vuoksi.)

Numeroiden syöttö (103 kB)

UkoduS60 v1.03 (9 kB) toimii Nokian S60 1st ja 2nd Edition-älypuhelimissa, uutuusjärjestyksessä: N90, N70, 6682, 6680, 6681, 3230, 6670, 6630, 6260, N-Gage QD, 7610, 6620, 3620, 3660, 6600, 3600, N-Gage, 3650 ja 7650. Myös muutamalta muulta valmistajalta on yhteensopiva S60-puhelinmalli: Lenovo P930, Sendo X, Siemens SX-1, Samsung SGH-D720 ja SGH-D730 sekä Panasonic X700 ja X800. Valitettavasti S60 3rd Edition-puhelimet eivät ole yhteensopivia aikaisempien mallien kanssa, eikä UkoduS60 siksi toimi niissä.

Ratkaisu löytyi (65 kB)

Toimintaperiaatteeltaan ohjelma on suoraviivainen. Se pitää koko ajan kirjaa siitä, mitä numeroita kuhunkin ruutuun on mahdollista laittaa. Aluksi täytetään ruudut, joihin on mahdollista laittaa vain yksi numero. Sitten haetaan kultakin riviltä, sarakkeelta ja laatikosta sellaiset numerot, joille löytyy ainoastaan yksi mahdollinen paikka. Jos vielä löytyy tyhjiä ruutuja, ne täytetään kaikki vaihtoehdot kattavalla järjestelmällisellä haulla. Ohjelma kertoo myös, jos mahdollisia ratkaisuja ei ole olemassa. Tällaisia pällinlevitys-Sudokuja ei lehdissä (toivottavasti) esiinny.

Ohjelman käynnistyttyä näyttöön piirtyy tyhjä 9x9 Sudoku-ruudukko. Siihen voi syöttää numeroita näppäimillä 1-9. Ohjauslevyllä/-tapilla voi siirrellä osoitinta ympäri ruudukkoa. Reunojen yli mentäessä osoitin siirtyy ruudukon toiselle laidalle. Näppäimellä C voi pyyhkiä numeron ruudusta, näppäimestä # saa listan tyhjään ruutuun sopivista numeroista. Painamalla ohjauslevyä/-tikkua, ohjelma alkaa ratkaista Sudokua.

Valikko (77 kB)

Vasemmalla toimintonäppäimellä aukeaa valikko. Sieltä löytyy vaihtoehdot ruudukon tyypin valitsemiseksi (9x9 tai 6x6), Sudokun ratkaisemiseksi sekä ratkaistun ruudukon palauttamiseksi alkutilaansa. Lisäksi valikosta voi avata lyhyen pikaohjeen tai poistua ohjelmasta. Poistua voi myös oikeanpuoleista toimintonäppäintä painamalla. Valikon tekstit ovat suomeksi, jos puhelimen kieleksi on asetettu suomi, muuten englanniksi.

9x9 ja 6x6 (73 kB)

Proseduuri maksimaalisen hyödyn saamiseksi UkoduS60-softasta:

  1. Saavu työpaikalle aamulla ennen muita.
  2. Etsi päivän lehti ja avaa se Sudoku-aukeamalta.
  3. Käynnistä UkoduS60 ja näppäile lehden Sudokun numerot siihen.
  4. Täytä ohjelman antama ratkaisu lehteen.
  5. Jätä lehti muiden löydettäväksi ja jää seuraamaan ihmisten reaktioita.

Johtuen ohjelman käyttämästä ratkaisumenetelmästä, on mahdollista saada se sopivilla numeroilla jäämään "jumiin", eli etsimään ratkaisua pidempään kuin normaalisti. Alla esimerkkinä ruudukko, jolla ohjelman voi jättää etsimään ratkaisua ihan niin pitkäksi aikaa kun huvittaa. Älykkäämpi ohjelma osaisi eliminoida mahdottomat tapaukset pois paremmin.

   
19
19
19
91
91
91
1 9
9 1
                             

Onnistumisen ilon ihmisiltä vei säätäjä Jussi

Alkuun Takaisin projekteihin Säätäjien kotisivulle


Päivitetty 11.2.2006 © Jäykät Säätäjät ry 2006