Sanapeli linuxille
Pieni sanapeli joka syntyi kun oli tässä pari tylsenpää iltaa
Uusi versio
uusi versio
Esittelyvideo
Omaan silmään olisi kivempi, että käyttöliittymässä allekkain olevat napit olisivat yhtä leveitä.
Itsellä työn alla ollut ristikon ratkaisija. Tietokannan sijaan kotuksen sanalistan sanat on tallennettu BK-puuhun. Ruudukkoon haettavan sanan voi antaa muodossa "a_t_o", missä siis alaviiva merkkaa ristikon tyhjää ruutua. Sanalistassa olevista sanoista saadaan BK-puun avulla haettua käytännössä samantien kaikki sopivat vaihtoehdot.
Alla 8th toteutus sanahausta. BK-puu kannattaisi luoda valmiiksi ja ohjelmassa vain ladata valmis puu, koska puun luonti itsessään vie paljon aikaa.
: metric \ s1 s2 -- n true s:dist ; ' metric 10 tree:bk constant words : read-and-add \ fname -- words swap f:slurp ( const tree:add ) s:eachline drop ; : split-join+offsets? \ s1 -- s2 a a:new swap "_" >r repeat r@ s:search null? if drop break else _swap dup n:1+ >r a:push swap s:len r@ n:> not if rdrop break else r> then then again r> s:/ "" a:join swap ; : compare \ s1 a s2 -- s1 a T s:len 3 pick s:len nip 3 pick a:len nip n:+ n:= if swap ( '_ s:! ) a:each! swap "_" s:/ "" a:join 2 pick s:= else drop false then ; : candidates? \ s -- a dup >r split-join+offsets? a:len words r> rot tree:search nip ' compare a:filter nip nip ; : app:main "kotus.txt" read-and-add \ read word list and add to bk-tree "___k_____" candidates? . cr \ get possible candidates bye ;
jalski kirjoitti:
Omaan silmään olisi kivempi, että käyttöliittymässä allekkain olevat napit olisivat yhtä leveitä.
Kiitos palautteesta. Muutin käyttöliittymää. Siitä saattaa kyllä huomata etten ole tehnyt graaffista käyttöliittymää juurikaan sitten amiksen.
Uusi versio päivitetty. Tein uuden kysymyksen putkapostin innoittamana.
inspiraation lähde
Uusi versio päivitetty
github
Lisäsin mahdollisuuden tallentaa pelikerran pistetuloksen tietokantaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.