#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D ' U N E   G R I L L E   D E   S U D O K U  :                                                        #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirv/.SUDO.11.3.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20140929154549).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____Passes                   20

$Z                  SETParam            _____Palette                  $xiP/Sudoku.01

$Z                  SformatI

$Z                  XYmaxNe             `calcul $XnSuDoKu-$X0SuDoKu` `calcul $YnSuDoKu-$Y0SuDoKu`

$Z                  FilSTmpB            ISuDoKu

$Z                  $xci/init$X                                                                                                         \
$Z                                      niveau=$NOIR                                                                                    \
$Z                                      R=$ISuDoKu                                                                                      \
$Z                                                                              $formatI

$Z                  set                 X_SuDoKu=$X0SuDoKu

$Z                  while               ($X_SuDoKu <= $XnSuDoKu)
$Z                                      set                 Y_SuDoKu=$Y0SuDoKu

$Z                                      while               ($Y_SuDoKu <= $YnSuDoKu)
$Z                                                          set       LiGnE=`$CA $FSuDoKu | $GRE " X=$X_SuDoKu Y=$Y_SuDoKu "`
$Z                                                          set       LiGnE=" $LiGnE "

$Z                                                          set       XLiGnE=`echo "$LiGnE" | $SE -e 's/^.* X=\([^ ][^ ]*\) .*$/\1/'`
$Z                                                          set       YLiGnE=`echo "$LiGnE" | $SE -e 's/^.* Y=\([^ ][^ ]*\) .*$/\1/'`
$Z                                                          set       CLiGnE=`echo "$LiGnE" | $SE -e 's/^.* C=\([^ ][^ ]*\) .*$/\1/'`

$Z                                                          @         XLiGnE = $XLiGnE - $X0SuDoKu
$Z                                                          @         YLiGnE = $YLiGnE - $Y0SuDoKu

$Z                                                          $xci/S_point$X                                                              \
$Z                                                                              A=$ISuDoKu                                              \
$Z                                                                              X=$XLiGnE Y=$YLiGnE niveau=$CLiGnE                      \
$Z                                                                              R=$ISuDoKu                                              \
$Z                                                                                                                      $formatI

$Z                                                          @                   Y_SuDoKu = $Y_SuDoKu + 1
$Z                                      end

$Z                                      @                   X_SuDoKu = $X_SuDoKu + 1
$Z                  end

$Z                  $xci/acces$X                                                                                                        \
$Z                                      A=$ISuDoKu                                                                                      \
$Z                                      renormaliser=VRAI                                                                               \
$Z                                      R=$ISuDoKu                                                                                      \
$Z                                                                              $formatI

$Z                  set                 RaPpOrTX=`calculINS ($sXmax-$sXmin+1)/($Xmax-$Xmin+1)`
$Z                  set                 RaPpOrTY=`calculINS ($sYmax-$sYmin+1)/($Ymax-$Ymin+1)`

$Z                  set                 New_Xmax=`calculINS $Xmin+(($Xmax-$Xmin+1)*$RaPpOrTX)-1`
$Z                  set                 New_Ymax=`calculINS $Ymin+(($Ymax-$Ymin+1)*$RaPpOrTY)-1`

$Z                  $xci/format.01$X                                                                                                    \
$Z                                      A=$ISuDoKu                                                                                      \
$Z                                                                              $formatI                                                \
$Z                                      mode=0                                                                                          \
$Z                                      R=$ISuDoKu.1                                                                                    \
$Z                                                                              XminR=$Xmin XmaxR=$New_Xmax YminR=$Ymin YmaxR=$New_Ymax

$Z                  $xci/format.01$X                                                                                                    \
$Z                                      A=$ISuDoKu                                                                                      \
$Z                                                                              $formatI                                                \
$Z                                      mode=2                                                                                          \
$Z                                      R=$ISuDoKu.2                                                                                    \
$Z                                                                              XminR=$Xmin XmaxR=$New_Xmax YminR=$Ymin YmaxR=$New_Ymax

$Z                  XYmaxNe             $Xmin $New_Xmax $Ymin $New_Ymax

$Z                  $xci/format.01$X                                                                                                    \
$Z                                      A=$ISuDoKu.1                                                                                    \
$Z                                                                              $formatI                                                \
$Z                                      mode=0                                                                                          \
$Z                                      R=$ISuDoKu.1                                                                                    \
$Z                                                                              $sformatIR

$Z                  $xci/format.01$X                                                                                                    \
$Z                                      A=$ISuDoKu.2                                                                                    \
$Z                                                                              $formatI                                                \
$Z                                      mode=0                                                                                          \
$Z                                      R=$ISuDoKu.2                                                                                    \
$Z                                                                              $sformatIR

$Z                  RformatI

$Z                  $xci/neutre$X                                                                                                       \
$Z                                      A=$ISuDoKu.1                                                                                    \
$Z                                      R=$_____ImageR                                                                                  \
$Z                                                                              $formatI

$Z                  $xci/acces$X                                                                                                        \
$Z                                      A=$ISuDoKu.2                                                                                    \
$Z                                      convertir=VRAI                                                                                  \
$Z                                                                              $formatI                                          |     \
$Z                  $xci/normalise.01$X                                                                                                 \
$Z                                                                              $formatI                                          |     \
$Z                  $xci/lissage$X                                                                                                      \
$Z                                      standard=FAUX                                                                                   \
$Z                                      passes=$_____Passes                                                                             \
$Z                                                                              $formatI                                          |     \
$Z                  $xci/normalise.01$X                                                                                                 \
$Z                                      R=$ISuDoKu.3                                                                                    \
$Z                                                                              $formatI

$Z                  $xci/vraies_C$X                                                                                                     \
$Z                                      A=$ISuDoKu.1                                                                                    \
$Z                                      p=$_____Palette                                                                                 \
$Z                                      R=$ISuDoKu.4                                                                                    \
$Z                                                                              $formatI

$Z        execRVB   $xci/montagne.01$X                                                                                                  \
$Z                                      A=$ISuDoKu.3                                                                                    \
$Z                                      standard=FAUX zero=FAUX                                                                         \
$Z                                      T=$ISuDoKu.4%s                                                                                  \
$Z                                      avion=VRAI                                                                                      \
$Z                                      R=$_____ImageR$m%s                                                                              \
$Z                                                                              $formatI

$Z                  FilSTmpE            ISuDoKu



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.