Kuten esittelyssäkin kerrotaan, olen karvainen ATK-nörtti. Ja minulle tämä palapeli on selkä ongelma.
Teoriaa:
18 240 palaa, jolla on yksi paikka tuossa kuvassa tarkoittaa silloin, että mikäli muotoa ja kuviota ei oteta huomioon, niin ratkaisuja on 166 357 920. Onneksi tässä tilanteessa voi päästä vähän helpommalla.
Miten tämä käytännössä sitten voitaisiin ratkaista? Mennään kauppaan ja ostetaan norpan rasvasta Kiinassa työntekijöitä piiskaamalla valmistettuja pusseja 400 kappaletta ja laitetaan palaset niihin. Yhteen pussiin tulee 45-50 palaa. Pussit on syytä numeroida.
Tämän jälkeen kun pussit on numeroitu, palat niistä skannaaan. Tämän tietenkin O.P Timo-Oja tekee samalla kun pussittaa.
Kun meillä on tiedostot palapeli_iso_pussi_N.tiff missä N on numerot yhdestä noin neljään sataan tarvitsee dataa käsitellä. Ensin kuvanlukijan valkoinen tausta voidaan muuttaa läpinäkyväksi. Tämän jälken palat valitaan yksitellen erikseen ja kopioidaan omaksi kuvaksi palapeli_iso_pussi_N-M.tiff, missä M on käsitellyn palan järjestysnumero. Tällähän ei ole oikeasti mitään merkitystä, koska nostamalla pussista satunnaisen palan, se ei mitenkään voi korreloida sen järjestysnumeroa.
Tämän jälkeen kuvat syötetään tietokantaan. Sinne tallennetaan tiedoston nimi, josta voidaan tietenkin parsia pussin numero rakentamista varten. Jokaisesta palasta tarvitaan tiedoiksi reunojen muodot, keskipiste ja palat joihin liittynyt. Myös palan koko tarvisee tietää.
Jotta tietokanta voidaan täyttää, tarvitsee paloja photoshopata. Oikeasti tämä nyt kuitenkin tehdään Gimpillä ja opetellaan skrpitaamaan. Skriptihän tekee tämän niin, että tunnistaa reunaviivan, siitä lasketaan keskipiste kuvalle, ja tuota reunaviivaa sitten jollain tavalla aproksimoidaan. Lopuksi haluttu data pusketaan pihalle ja sen jälkeen tietokantaan.
Tässä vaihessa voidaan kääntää kampea ja katsoa josko tulisi ratkaisuja. Ratkaisuja etsitään siten, että reunaviivat yritetään sovittaa yhteen. Mikäli reunaviiva sopisi, mutta on vain vinossa, kuvaa kierretään sopivasti, jotta palat sopivat yhteen. Kun kaikki palat on sovitettu yhteen, luodaan kuva johon on liimattu palat oikeassa järjestyksessä.
Tämän jälkeen tarvitsee tutkia josko ratkaisu on oikea. Menetelmähän ei ottanut kantaa palapelin kuviooon. Tässä vaiheessa tarvitsee rakentaa oma ohjelma. Käyttöliittymästä voi sitten raksutella ne palat, jotka ovat selkeästi oikealla paikalla ja pariutuneet yhteen. Näillä lisätiedoilla voidaan tehdä uusi ratkaisu iteraatio.
Kun on löydetty oikea ratkaisu (yksi 166 miljoonasta) otetaan pussit ja ohjelma esiin. Se kertoo mistä pussista haetaan seuraava pala. On paljon helpompi katsoa ATK:n ruudulta millainen se haettu pala on ja valkata se pienestä joukosta ja vaikka sovittaa sitä. Näin voidaan ratkaista hankala palapeli.
Tässä ohjelmassa on yksi ongelma. En ole vielä tehnyt sitä.
Ei kommentteja:
Lähetä kommentti