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&('&nbsp;';' ') (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

Reply via email to