Ahhh... I hadn’t spotted “hexadoku” - I’d used “alphadoku”. We shall see in due course! M
Sent from my iPad > On 24 Jun 2022, at 12:24, 'Mike Day' via Programming > <programm...@jsoftware.com> wrote: > > Perhaps I was just unlucky, but I tried an iPad-type “share” to Documents, > which didn’t produce a useable file; later downloaded a pdf with the Windows > 11 laptop. Copy-paste from adobe worked to the extent that multi-spaces > became single spaces, > which I then filled out by hand! > > Anyway, I’ll try your ideas out later, maybe not for a few days, as we’ll > be away for a while. > > Thanks for your suggestions, > > Mike > > Sent from my iPad > >> On 24 Jun 2022, at 12:12, Raul Miller <rauldmil...@gmail.com> wrote: >> >> I went to a "print out the hexadoku page" on that site, and did a >> right click save-as on the resulting html page. >> >> Extracting the puzzle seems straight forward (but beware email induced >> line wrap): >> >> htm=: fread '~/Downloads/16x16 sudoku, Hexadoku puzzle to print_ level >> beginner, #1.html' >> >> extract=: {{ >> mask=. n E. y >> start=. mask i.1 >> mask u;.1&(start&}.) y >> }} >> >> clean=: {{ >> rplc&(' ';' ') (y #~-.+/\-/'<>'=/y) -. '>' >> }} >> >> parse=: {{ >> start=. (I.'<table' E. y) ([ {~_1+I.) I.'id="grid"' E. y >> end=. (I.'</table' E. y) ([ {~ I.) start >> raw=. start}.end{.y >> <@clean extract '<td' extract '<tr' raw >> }} >> >> With the above definitions, parse htm gives me what looks like the >> puzzle. Though perhaps ;"1 parse htm would be more useful to you... >> >> I hope this helps, >> >> -- >> Raul >> On Fri, Jun 24, 2022 at 6:34 AM 'Michael Day' via Programming >> <programm...@jsoftware.com> wrote: >>> >>> Sorry for late posting - apparently a problem with my broadband >>> provider's server. >>> >>> Yes, it can be worth doing a limited feasibility check on your input. >>> Every column, >>> row and small box should have no repeated elements apart from the "missing" >>> indicator, such as 0 or perhaps one of '.-*0' , eg, using my >>> generalisation of Roger's code: >>> */ (2 */ @: > #/.~@: -.&0)"1 R{,fiend NB. fiend is a numeric 9x9 >>> puzzle >>> >>> 1 >>> >>> >>> It might be of minor interest to note I've got my modification of Roger >>> Hui's wiki essay >>> >>> code to solve a 25x25 puzzle which I lifted from an online source, >>> >>> https://www.sudoku-puzzles-online.com/ >>> >>> Annoyingly, I haven't dicovered how to download it in a form usable >>> directly by J. I >>> spent far too much time transcribing just one 25x25 puzzle by eye and hand. >>> >>> I modified the solve function , posted on 20 June. just a tad to allow >>> the input of a character >>> representation. I'll just reproduce the new and amended lines: >>> >>> solve =: 3 : 0 >>> '.123456789abcdefghjklmnpqrstuvwxyzA' solve y NB. x is a default >>> representation for up to 36x36 just: >>> if. ' ' = 1{.0{.ry =. , y do. >>> chars =. '' >>> chars =. chars, /:~ ~., ' .*-' (e.~#]) ry NB. any other >>> representations of unknown cells? >>> chars =. chars, /:~ ~., '123456789' (+./@:e.~#[) ry >>> chars =. chars, /:~ ~., 'abcdefghijklmnopqrstuvwxyz' (+./@:e.~#[) ry >>> chars =. chars, /:~ ~., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' (+./@:e.~#[) ry >>> sudokurep =: chars >>> y =. chars i. y >>> else. >>> sudokurep =: x >>> end. >>> ..... >>> see1 =: (;~n2$n1{.1)&(<;.1) @ ({&sudokurep) @ (n22&$) @ , >>> >>> ..... >>> >>> ) >>> >>> >>> Here's the puzzle I copied, "confirmed" or "advanced" number 7957: >>> >>> >>> t25 =: (#{."1 ] ) dtb"1 >LF cut 0 : 0 >>> j g n os wc iy r aup >>> o qf w n mgeb >>> ycaix rlp t b d nvs >>> n qcb e vg x t >>> wbmks ig pnf cd >>> p s w fxa d v u l >>> k u xyv rhog cj p q >>> tj e nq sy xo mbf w >>> lxob ufk i t d ns >>> rqdtc w uh o g >>> u kt o i vbpm gj h >>> j xv pdrqwat o u >>> atib sym h w jod nfcx >>> o w dfbtkns ux a >>> v he ligq b c fk d >>> g x ud m yebqt >>> lh r p s dmw gcxu >>> q rmn pk tw fg b sh >>> m b ac hoej urx p y >>> t o s d bga h f i >>> cn yps db vukfe >>> x p vh b kwa j >>> ajy n f p hte sdriw >>> bfud n v im x >>> wli j ur xv pf q b n >>> ) >>> >>> >>> see {:solveh t25 >>> ┌─────┬─────┬─────┬─────┬─────┐ >>> │jxegv│nktos│bwcdi│ymqhr│laupf│ >>> │toprq│fdjvw│syuxn│icakl│hmgeb│ >>> │hycai│xmrlp│ogtkf│bedju│nvsqw│ >>> │ndflu│aqcby│ejmph│swvgo│ixrkt│ >>> │wbmks│uheig│qlvar│txpnf│yjcdo│ >>> ├─────┼─────┼─────┼─────┼─────┤ >>> │ipysh│rgowm│fxaed│qnkvj│utlbc│ >>> │knwue│ibxyv│lrhog│asftc│jdpmq│ >>> │gavtj│delnq│cusyp│xoimb│fkwhr│ >>> │clxob│hufkj│ivqmt│gprdw│aeyns│ >>> │fmrqd│tcpsa│wbknj│luhey│xovgi│ >>> ├─────┼─────┼─────┼─────┼─────┤ >>> │usdcl│ktwao│xiyfe│nvbpm│qgjrh│ >>> │ykjfn│exvhc│mpdrq│watig│olbsu│ >>> │atibp│symur│ghlwv│eqjod│knfcx│ >>> │oqgmw│pjdfb│tknsc│rluxh│eiayv│ >>> │vrhex│ligqn│jaobu│cysfk│pwmtd│ >>> ├─────┼─────┼─────┼─────┼─────┤ >>> │pgsxc│waudh│vfrlm│oinye│bqtjk│ >>> │lhkyf│orbte│pniqs│jdmwv│gcxua│ >>> │djqvr│mnipk│ytwux│fgcba│sheol│ >>> │mibna│cfqgl│hoejk│urxst│wpdvy│ >>> │eutwo│vsyjx│dcbga│khlqp│rfnim│ >>> ├─────┼─────┼─────┼─────┼─────┤ >>> │rcnhg│ypsmi│aqjtw│dbolx│vukfe│ >>> │xeopt│gvhrd│usfib│mkwan│cyqlj│ >>> │qvajy│blnxf│kmpco│hteus│driwg│ >>> │bfudk│qwact│neghl│vjyri│msoxp│ >>> │swlim│jokeu│rdxvy│pfgcq│tbhan│ >>> └─────┴─────┴─────┴─────┴─────┘ >>> >>> >>> ts >>> 6!:2 , 7!:2@] >>> ts'solveh t25' NB. performance ok for this example >>> 0.0374274 1461408 >>> >>> They offer even larger puzzles, but I'll avoid those until I see how to >>> download them >>> in a usable format! >>> >>> >>> >>>> On 20/06/2022 18:00, Brian Schott wrote: >>>> All, >>>> >>>> My code is not perfect, but the error I was noticing in trying to step >>>> through the algorithm using the verbs f and diff were correct, BUT my >>>> initial data in the noun raw was missing a starting SPACE. So the example >>>> data was unsolvable. When I corrected the data, I was able to get an answer >>>> with Mike's most recent verb 'solve', and it looks like it is the correct >>>> answer. >>>> >>>> I apologize for the noise. And will try to improve my solution now; for >>>> some reason my version of 'sudoku' is flawed, but I think I can rectify >>>> that now that I have a working version of the verbs f and diff. >>>> >>>> Again, I apologize. And thank you. >>>> ---------------------------------------------------------------------- >>>> For information about J forums seehttp://www.jsoftware.com/forums.htm >>> >>> >>> -- >>> This email has been checked for viruses by Avast antivirus software. >>> https://www.avast.com/antivirus >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm