%#! /usr/local/bin/prologcgi

:-s_charset(_,utf8).
:- dlib_require(clp).

top_call:-
  get_params(Param),
  html_call([
    "Content-Type: text/html; charset=utf-8

     <html lang='ja'><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
     <title>SUDOKU</title></head> 
     <body><center><H1>SUDOKU</H1> 
     <a href='puttxt.exe?sudoku.cgi' target='source'>このページのソース表示　</a>
     <INPUT TYPE='button' VALUE='RETURN' onClick='history.back()'><br><br> 
     下のボックスに数値を入力し「推論」ボタンを押してください<br>
      <form action='sudoku.cgi' method='POST'>
         <table  border='2' ><tr><td>",
%call(write(Param)),
%            call(write_checkbox(1,Param,FontList)),
        "</td></tr></table>
        <input type='submit' value='推論'>
      </form> <H3>",
     "</H3></center></body></html>"]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
get_params(X):- param_assoc_list(X),!.
get_params([8,_,_,  _,_,_,  _,_,_ ,
             _,_,3,  6,_,_,  _,_,_ ,
             _,7,_,  _,9,_,  2,_,_ ,

          _,5,_,  _,_,7,  _,_,_ ,
          _,_,_,  _,4,5,  7,_,_ ,
          _,_,_,  1,_,_,  _,3,_ ,

          _,_,1,  _,_,_,  _,6,8 ,
          _,_,8,  5,_,_,  _,1,_ ,
          _,9,_,  _,_,_,  4,_,_  ]).

write_checkbox(82,_,[]):-!.
write_checkbox(N, _, [X|R]):- !,write_checkbox2(N,L,R,checked).     % 該当位置がチェックされている
write_checkbox(N,L,      [0.0|R]):- write_checkbox2(N,L,R,'').            % 該当位置はチェックされていない

write_checkbox2(N,L,R,Checked):- 
    write_list(['<input type="text" name="x',N,'" value="',Checked,'" >']), 
    (0 is N mod 9 ->write('<br>'),nl;true),
    NN is N+1,write_checkbox(NN,L,R).     
