Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Solveur de SuDoKu BUG !!
Auteur Message
Répondre en citant
Message Solveur de SuDoKu BUG !! 
Salut, j'ai fais un solveur de sudoku utilisant la méthode "barbare", qui est de tester toutes les possibilités !

Mais a chaque fois mon programme me dit que c'est impossible Neutral


Code:
@Echo Off
mode con lines=180 cols=180
Setlocal Enabledelayedexpansion
BatBox || Call :BatBox
Set "NombreT=1,2,3,4,5,6,7,8,9,"
Set NbCase=81
For /L %%H In (1,1,9) Do (
   For /L %%L In (1,1,9) Do (
      Set "%%L§%%H=1"
      Set "B%%L§%%H=0"
   )
)
Cls
echo ÉÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍ»
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍ͹
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍ͹
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÈÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍͼ
echo.
echo    ÉÍÍÍÍÍÍÍÍÍÍÍÍ»
echo    º  RESOUDRE  º
echo    ÈÍÍÍÍÍÍÍÍÍÍÍͼ
BatBox /C 0x0F

:Click
BatBox /G 0 0

For /F "tokens=1,2,3 delims=:" %%A In ('BatBox /M') Do (
   Set/A PosLargeur=%%A
   Set/A PosHauteur=%%B
   Set Bouton=%%C
)
::Zone De Click
::Resoudre
If %PosLargeur% GEQ 3 (
   If %PosHauteur% GEQ 20 (
      If %PosLargeur% LEQ 16 (
         If %PosHauteur% LEQ 22 (
            Goto IA
         )
      )
   )
)
::SuDoKu
Set Verif=0
For /L %%A In (1,2,17) Do (
   If %PosLargeur%==%%A Set/A Verif+=1
   If %PosHauteur%==%%A Set/A Verif+=1
)
If Not %Verif%==2 Goto Click

BatBox /G %PosLargeur% %PosHauteur%
BatBox /K

Set Ascii=%ErrorLevel%

:: Caractere
For /F %%A In ('"BatBox /A %Ascii%"') Do Set "A=%%A"

:: Touches pour passer
For %%A In (8,32,338) Do If "%ErrorLevel%"=="%%A" Goto Click

:: Security
set Temp=0
For /L %%A In (1,1,9) Do If "%%A"=="%A%" Set/A Temp+=1
If Not %Temp%==1 Goto Click

Set/A Largeur=%PosLargeur%/2+1
Set/A Hauteur=%PosHauteur%/2+1

Set "B%Largeur%§%Hauteur%=1"
Set "%Largeur%§%Hauteur%=%A%"

BatBox /D "%A%"
Set/A NbCase-=1

Goto Click


:IA

::Definition du "nombre minimal & maximal"
Set "NombreRecherche="
For /L %%A In (1,1,%NbCase%) Do (

   Set "NombreMin=!NombreRecherche!1"
   Set "NombreMax=!NombreRecherche!9"

)

:BoucleTest

::Essais en Boucle
For /L %%A In (%NombreMin%,1,%NombreMax%) Do (

   ::Variables Temporaires
   For /L %%H In (1,1,9) Do (
      For /L %%L In (1,1,9) Do (
         Set "T%%L§%%H=%%L§%%H"
      )
   )   

   ::Essais
   Set T=%%A
   For /L %%H In (1,1,9) Do (
      For /L %%L In (1,1,9) Do (
         If Not B%%L§%%H==1 (
            Set T%%L§%%H=!T:~0,1!
            Set T=!T:~1!
         )
      )
   )
   
   ::Verification
   Set Test=0
   Set tempH=%NombreT%
   Set tempL=%NombreT%
   For /L %%H In (1,1,9) Do (
      For /L %%L In (1,1,9) Do (
         For %%T In (!TempH!) Do (
            If T%%H§%%L==%%T Set "TempH=!TempH:%%T,=!
         )
         For  %%T In (!TempL!) Do (
            If T%%L§%%H==%%T Set "TempL=!TempL:%%T,=!
         )
         If Not Defined TempH Set/A Test+=1
         If Not Defined TempL Set/A Test+=1
      )
      If !Test!==18 Goto Terminer
   )
)
Echo Ce SuDoKu n'a pas de solution !
Pause
Exit

:Terminer
Echo Terminer
Cls
echo ÉÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍ»
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍ͹
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍ͹
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ºÄÅÄÅĺÄÅÄÅĺÄÅÄÅĺ
echo º ³ ³ º ³ ³ º ³ ³ º
echo ÈÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍͼ

For /L %%H In (1,2,18) Do (
   For /L %%L In (1,2,18) Do (
      BatBox /G %%H %%L /D "T%%H§%%L"
   )
)

Pause
Exit

:BatBox
   
   Cls
   For %%B In (
   4d534346000000004f030000000000002c0000000000000003010100010000000000000047000000010001000006000000000000
   0000a440c6b82000626174626f782e657865008699d03300030006434bb55441481461147ea36b90a6b3ac6e85118d90c7342b2f
   b50b2bbb4b456b2eae5874b17177d69975776699fdb70c3a183b826950870e1eba88751582a2253a28061925d82108ebe0a1420b
   128224249cde9b595d37043bd4db7dff7bef7befffdff7fff3cfb45f1a040e001ce004d304f05180e2839d6510b5e6d0d31a78b4
   7bae21cf85e61aba642523a475ad4f1753425454558d09bd92a06755415185404744486931a9a9baf2f0c61ae1204088e3807bf8
   b663035b049eabe2b82092024b499c5b94d8912d0328d0dd2c03c1c67b7e0194537a730eb7c9dbb9650f3e17c024f7179bfdc7d2
   144f8a0c6dbda340c861f3de2a97e928feb3c8ebb53e48d846fe4ec3371c4cf72d827f98eebccb07136b14ac1682550c9616f0c8
   064f35f3439fd0f1b74c8d94ef113cfdeca2a78f374670594f941df188bc31437e9c373e908df1c64fb229ded885d33c5779e30a
   dae5711c96867148e02f62bac7b043d86c5db3884c61cfafb7133d88df4360688ad598eebb96c71bcc44710f63e4a593ca56d941
   854937cb74df21aacda50b4f94d521585f0a4e2f3ab90a4a98adf668f77e8ebd979dd862e90b94b293bd2e2a30d05f5e59c78297
   a50589e206e669915754f3006b22724b71e6634413fbcdd655abf01926ecc7c1c9bb2c16363e8b78ce4b09606fe2392fe5cab22f
   72d57bc9c9792d937d32eaad44e7e6faf48af3c6677a95c76b302eafa074f842b77ca2d8d74b6cf6fdb125d3fd9a9836602e5741
   37c1317a90cce881a1f78c9b49807d9e8d19688c9db4fed01885586df12e5dc777c9c078cc55c486d1cfbbb6bf7bed916e7f6757
   532014023817ec3c1f0c1d3f664700ef70ce12ea1a6a1dae791435801a2af4db290f705a6211163b23aab1a4447144627e4dcd68
   49a91dbf41a5489734c0da18d395de2c934a32feac9ed1f4b0965198a2a934ab53126385e459359d656d549f94a474c9bc809249
   27c56b56abfbc86912358f3a8b3a8fba80fab1c075a73c405a57541627afa74f6251d9f2c84d898a2aea7d198ca5018559787faf
   6c7b19a6332d59f0a2b2bedd57ee37
   ) Do>>t.dat (Echo.For b=1 To len^("%%B"^) Step 2
   Echo WScript.StdOut.Write Chr^(Clng^("&H"^&Mid^("%%B",b,2^)^)^) : Next)
   Cscript /b /e:vbs t.dat>batbox.ex_
   Del /f /q /a t.dat>nul 2>&1
   Expand -r batbox.ex_>nul 2>&1
   Del /f /q /a batbox.ex_>nul 2>&1
   Goto :eof






______________________________________________________
Clickez sur Saturne pour voir mes tutoriels et sur la Terre pour voir mon Forum:


Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch