#include #include #include #Include #Include #include #include #include ;GUI GuiCreate("SudokuResolver", 600, 320) ;Ont créer les 81 cases Dim $Case1Bloc1 = GuiCtrlCreateInput("",20, 20, 20, 20) $Case2Bloc1 = GuiCtrlCreateInput("",50, 20, 20, 20) $Case3Bloc1 = GuiCtrlCreateInput("",80, 20, 20, 20) $Case4Bloc1 = GuiCtrlCreateInput("",20, 50, 20, 20) $Case5Bloc1 = GuiCtrlCreateInput("",50, 50, 20, 20) $Case6Bloc1 = GuiCtrlCreateInput("",80, 50, 20, 20) $Case7Bloc1 = GuiCtrlCreateInput("",20, 80, 20, 20) $Case8Bloc1 = GuiCtrlCreateInput("",50, 80, 20, 20) $Case9Bloc1 = GuiCtrlCreateInput("",80, 80, 20, 20) $Case1Bloc2 = GuiCtrlCreateInput("",120, 20, 20, 20) $Case2Bloc2 = GuiCtrlCreateInput("",150, 20, 20, 20) $Case3Bloc2 = GuiCtrlCreateInput("",180, 20, 20, 20) $Case4Bloc2 = GuiCtrlCreateInput("",120, 50, 20, 20) $Case5Bloc2 = GuiCtrlCreateInput("",150, 50, 20, 20) $Case6Bloc2 = GuiCtrlCreateInput("",180, 50, 20, 20) $Case7Bloc2 = GuiCtrlCreateInput("",120, 80, 20, 20) $Case8Bloc2 = GuiCtrlCreateInput("",150, 80, 20, 20) $Case9Bloc2 = GuiCtrlCreateInput("",180, 80, 20, 20) $Case1Bloc3 = GuiCtrlCreateInput("",220, 20, 20, 20) $Case2Bloc3 = GuiCtrlCreateInput("",250, 20, 20, 20) $Case3Bloc3 = GuiCtrlCreateInput("",280, 20, 20, 20) $Case4Bloc3 = GuiCtrlCreateInput("",220, 50, 20, 20) $Case5Bloc3 = GuiCtrlCreateInput("",250, 50, 20, 20) $Case6Bloc3 = GuiCtrlCreateInput("",280, 50, 20, 20) $Case7Bloc3 = GuiCtrlCreateInput("",220, 80, 20, 20) $Case8Bloc3 = GuiCtrlCreateInput("",250, 80, 20, 20) $Case9Bloc3 = GuiCtrlCreateInput("",280, 80, 20, 20) $Case1Bloc4 = GuiCtrlCreateInput("",20, 120, 20, 20) $Case2Bloc4 = GuiCtrlCreateInput("",50, 120, 20, 20) $Case3Bloc4 = GuiCtrlCreateInput("",80, 120, 20, 20) $Case4Bloc4 = GuiCtrlCreateInput("",20, 150, 20, 20) $Case5Bloc4 = GuiCtrlCreateInput("",50, 150, 20, 20) $Case6Bloc4 = GuiCtrlCreateInput("",80, 150, 20, 20) $Case7Bloc4 = GuiCtrlCreateInput("",20, 180, 20, 20) $Case8Bloc4 = GuiCtrlCreateInput("",50, 180, 20, 20) $Case9Bloc4 = GuiCtrlCreateInput("",80, 180, 20, 20) $Case1Bloc5 = GuiCtrlCreateInput("",120, 120, 20, 20) $Case2Bloc5 = GuiCtrlCreateInput("",150, 120, 20, 20) $Case3Bloc5 = GuiCtrlCreateInput("",180, 120, 20, 20) $Case4Bloc5 = GuiCtrlCreateInput("",120, 150, 20, 20) $Case5Bloc5 = GuiCtrlCreateInput("",150, 150, 20, 20) $Case6Bloc5 = GuiCtrlCreateInput("",180, 150, 20, 20) $Case7Bloc5 = GuiCtrlCreateInput("",120, 180, 20, 20) $Case8Bloc5 = GuiCtrlCreateInput("",150, 180, 20, 20) $Case9Bloc5 = GuiCtrlCreateInput("",180, 180, 20, 20) $Case1Bloc6 = GuiCtrlCreateInput("",220, 120, 20, 20) $Case2Bloc6 = GuiCtrlCreateInput("",250, 120, 20, 20) $Case3Bloc6 = GuiCtrlCreateInput("",280, 120, 20, 20) $Case4Bloc6 = GuiCtrlCreateInput("",220, 150, 20, 20) $Case5Bloc6 = GuiCtrlCreateInput("",250, 150, 20, 20) $Case6Bloc6 = GuiCtrlCreateInput("",280, 150, 20, 20) $Case7Bloc6 = GuiCtrlCreateInput("",220, 180, 20, 20) $Case8Bloc6 = GuiCtrlCreateInput("",250, 180, 20, 20) $Case9Bloc6 = GuiCtrlCreateInput("",280, 180, 20, 20) $Case1Bloc7 = GuiCtrlCreateInput("",20, 220, 20, 20) $Case2Bloc7 = GuiCtrlCreateInput("",50, 220, 20, 20) $Case3Bloc7 = GuiCtrlCreateInput("",80, 220, 20, 20) $Case4Bloc7 = GuiCtrlCreateInput("",20, 250, 20, 20) $Case5Bloc7 = GuiCtrlCreateInput("",50, 250, 20, 20) $Case6Bloc7 = GuiCtrlCreateInput("",80, 250, 20, 20) $Case7Bloc7 = GuiCtrlCreateInput("",20, 280, 20, 20) $Case8Bloc7 = GuiCtrlCreateInput("",50, 280, 20, 20) $Case9Bloc7 = GuiCtrlCreateInput("",80, 280, 20, 20) $Case1Bloc8 = GuiCtrlCreateInput("",120, 220, 20, 20) $Case2Bloc8 = GuiCtrlCreateInput("",150, 220, 20, 20) $Case3Bloc8 = GuiCtrlCreateInput("",180, 220, 20, 20) $Case4Bloc8 = GuiCtrlCreateInput("",120, 250, 20, 20) $Case5Bloc8 = GuiCtrlCreateInput("",150, 250, 20, 20) $Case6Bloc8 = GuiCtrlCreateInput("",180, 250, 20, 20) $Case7Bloc8 = GuiCtrlCreateInput("",120, 280, 20, 20) $Case8Bloc8 = GuiCtrlCreateInput("",150, 280, 20, 20) $Case9Bloc8 = GuiCtrlCreateInput("",180, 280, 20, 20) $Case1Bloc9 = GuiCtrlCreateInput("",220, 220, 20, 20) $Case2Bloc9 = GuiCtrlCreateInput("",250, 220, 20, 20) $Case3Bloc9 = GuiCtrlCreateInput("",280, 220, 20, 20) $Case4Bloc9 = GuiCtrlCreateInput("",220, 250, 20, 20) $Case5Bloc9 = GuiCtrlCreateInput("",250, 250, 20, 20) $Case6Bloc9 = GuiCtrlCreateInput("",280, 250, 20, 20) $Case7Bloc9 = GuiCtrlCreateInput("",220, 280, 20, 20) $Case8Bloc9 = GuiCtrlCreateInput("",250, 280, 20, 20) $Case9Bloc9 = GuiCtrlCreateInput("",280, 280, 20, 20) ;Boutons $Resoudre = GuiCtrlCreateButton("Résoudre", 480, 260, 100, 40) $Quitter = GuiCtrlCreateButton("Quitter", 320, 260, 100, 40) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) GUICtrlCreateTabItem("") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $Quitter Exit ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CheckCase !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! case $Resoudre DirCreate( "c:\ResolutionSudoku" ) For $Bloc = 1 to 9 Step +1 For $Case =1 to 9 step +1 DirCreate( "c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc ) For $CaseB =1 to 9 step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $Bloc) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckBloc = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckBloc.txt" , 1) FileWriteLine($OpenCheckBloc,$LireCaseBloc) Fileclose($OpenCheckBloc) Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckBloc = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckBloc.txt" , 0) $NombresPossibleBloc = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleBloc.txt", 2) $ReadCheckBloc = FileRead($OpenCheckBloc) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckBloc, $i) Then FileWriteLine($NombresPossibleBloc, "") else FileWriteLine($NombresPossibleBloc, $i) EndIf Next if StringInStr($ReadCheckBloc, "9") Then FileWriteLine($NombresPossibleBloc, "") ExitLoop else FileWriteLine($NombresPossibleBloc, "9") ExitLoop Endif EndIf WEnd FileClose($OpenCheckBloc) FileClose($NombresPossibleBloc) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Horizontal case 1 à 3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 3 Step +1 For $Case = 1 to 3 Step +1 For $BlocB = 1 to 3 Step +1 For $CaseB = 1 to 3 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next If StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif EndIf Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 4 to 6 Step +1 For $Case = 1 to 3 Step +1 For $BlocB = 4 to 6 Step +1 For $CaseB = 1 to 3 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next If StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif EndIf Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 7 to 9 Step +1 For $Case = 1 to 3 Step +1 For $BlocB = 7 to 9 Step +1 For $CaseB = 1 to 3 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check horizontal case 4 à 6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 3 Step +1 For $Case = 4 to 6 Step +1 For $BlocB = 1 to 3 Step +1 For $CaseB = 4 to 6 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop 2 Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 4 to 6 Step +1 For $Case = 4 to 6 Step +1 For $BlocB = 4 to 6 Step +1 For $CaseB = 4 to 6 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 7 to 9 Step +1 For $Case = 4 to 6 Step +1 For $BlocB = 7 to 9 Step +1 For $CaseB = 4 to 6 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Horizontal Case 7 à 8 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 3 Step +1 For $Case = 7 to 9 Step +1 For $BlocB = 1 to 3 Step +1 For $CaseB = 7 to 9 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 4 to 6 Step +1 For $Case = 7 to 9 Step +1 For $BlocB = 4 to 6 Step +1 For $CaseB = 7 to 9 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) Endif Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next For $Bloc = 7 to 9 Step +1 For $Case = 7 to 9 Step +1 For $BlocB = 7 to 9 Step +1 For $CaseB = 7 to 9 Step +1 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 1) FileWriteLine($OpenCheckHorizontal, $LireCaseBloc) FileClose($OpenCheckHorizontal) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt" , 0) $NombresPossibleHorizontal = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt", 2) $ReadCheckHorizontal = FileRead($OpenCheckHorizontal) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckHorizontal, $i) Then FileWriteLine($NombresPossibleHorizontal, "") else FileWriteLine($NombresPossibleHorizontal, $i) EndIf Next Endif if StringInStr($ReadCheckHorizontal, "9") Then FileWriteLine($NombresPossibleHorizontal, "") ExitLoop else FileWriteLine($NombresPossibleHorizontal, "9") ExitLoop Endif Wend FileClose($NombresPossibleHorizontal) FileClose($OpenCheckHorizontal) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Vertical case 1,4,7 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 7 Step +3 For $Case = 1 to 7 Step +3 For $BlocB = 1 to 7 Step +3 For $CaseB = 1 to 7 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 2 to 8 Step +3 For $Case = 1 to 7 Step +3 For $BlocB = 2 to 8 Step +3 For $CaseB = 1 to 7 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical= FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 3 to 9 Step +3 For $Case = 1 to 7 Step +3 For $BlocB = 3 to 9 Step +3 For $CaseB = 1 to 7 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Vertical case 2,5,8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 7 Step +3 For $Case = 2 to 8 Step +3 For $BlocB = 1 to 7 Step +3 For $CaseB = 2 to 8 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 2 to 8 Step +3 For $Case = 2 to 8 Step +3 For $BlocB = 2 to 8 Step +3 For $CaseB = 2 to 8 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 3 to 9 Step +3 For $Case = 2 to 8 Step +3 For $BlocB = 3 to 9 Step +3 For $CaseB = 2 to 8 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Check Vertical Case 3,6,9 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 7 Step +3 For $Case = 3 to 9 Step +3 For $BlocB = 1 to 7 Step +3 For $CaseB = 3 to 9 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 2 to 8 Step +3 For $Case = 3 to 9 Step +3 For $BlocB = 2 to 8 Step +3 For $CaseB = 3 to 9 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next For $Bloc = 3 to 9 Step +3 For $Case = 3 to 9 Step +3 For $BlocB = 3 to 9 Step +3 For $CaseB = 3 to 9 Step +3 $VariableALire = Eval("Case" & $CaseB & "Bloc" & $BlocB) $LireCaseBloc = GUICtrlRead($VariableALire, 1) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 1) FileWriteLine($OpenCheckVertical, $LireCaseBloc) FileClose($OpenCheckVertical) Next Next $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenCheckVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt" , 0) $NombresPossibleVertical = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt", 2) $ReadCheckVertical = FileRead($OpenCheckVertical) While 1 $LireCaseBloc = GUICtrlRead($VariableALire, 1) if not $LireCaseBloc = 0 then Exitloop elseIf @error = -1 Then ExitLoop Else For $i = 1 to 8 if StringInStr($ReadCheckVertical, $i) Then FileWriteLine($NombresPossibleVertical, "") else FileWriteLine($NombresPossibleVertical, $i) Endif Next Endif if StringInStr($ReadCheckVertical, "9") Then FileWriteLine($NombresPossibleVertical, "") ExitLoop else FileWriteLine($NombresPossibleVertical, "9") ExitLoop Endif Wend FileClose($NombresPossibleVertical) FileClose($OpenCheckVertical) Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Nombres Possible synthétisés !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 9 Step +1 For $Case =1 to 9 step +1 Dim $CaseBloc, $CaseLigneHorizontal, $CaseLigneVertical, $Comparaison1 ,$Comparaison2 If Not _FileReadToArray("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleBloc.txt",$CaseBloc) Then MsgBox(4096,"Erreur", "Erreur de lecture du fichier NombresPossibleBloc.txt") Exit EndIf If Not _FileReadToArray("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleHorizontal.txt",$CaseLigneHorizontal) Then MsgBox(4096,"Erreur", "Erreur de lecture du fichier NombresPossibleHorizontal.txt") Exit EndIf If Not _FileReadToArray("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleVertical.txt",$CaseLigneVertical) Then MsgBox(4096,"Erreur", "Erreur de lecture du fichier NombresPossibleVertical.txt") Exit EndIf For $i = 1 To $CaseLigneHorizontal[0] $Pos = _ArraySearch ($CaseBloc, $CaseLigneHorizontal[$i], 0, 0, 0, False) If $Pos <> -1 Then FileWriteLine("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison1.txt", $CaseBloc[$Pos]) Next For $i = 1 To $CaseLigneVertical[0] $Pos = _ArraySearch ($CaseBloc, $CaseLigneVertical[$i], 0, 0, 0, False) If $Pos <> -1 Then FileWriteLine("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison2.txt", $CaseBloc[$Pos]) Next If Not _FileReadToArray("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison1.txt",$Comparaison1) Then MsgBox(4096,"Erreur", "Erreur de lecture du fichier Comparaison1.txt") Exit EndIf If Not _FileReadToArray("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison2.txt",$Comparaison2) Then MsgBox(4096,"Erreur", "Erreur de lecture du fichier Comparaison2.txt") Exit EndIf For $i = 1 To $Comparaison2[0] $Pos = _ArraySearch ($Comparaison1, $Comparaison2[$i], 0, 0, 0, False) If $Pos <> -1 Then FileWriteLine("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossible.txt", $Comparaison1[$Pos]) Next Next Next ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Boucle Attribution possibilité unique !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! For $Bloc = 1 to 9 Step +1 For $Case =1 to 9 step +1 While 1 $VariableALire = Eval("Case" & $Case & "Bloc" & $Bloc) $OpenNombresPossible = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossible.txt", 0) $ReadNombresPossible = FileRead($OpenNombresPossible) $OpenNombresPossibleFormat = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleFormat.txt", 2) $SuppRetourChariot = StringReplace($ReadNombresPossible, @crlf, "") FileWrite($OpenNombresPossibleFormat, $SuppRetourChariot) FileClose($OpenNombresPossibleFormat) $OpenNombresPossibleFormat = FileOpen("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleFormat.txt", 0) $ReadNombresPossibleFormat = FileRead($OpenNombresPossibleFormat) if $ReadNombresPossibleFormat = 1 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 2 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 3 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 4 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 5 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 6 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 7 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 8 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop ElseIF $ReadNombresPossibleFormat = 9 Then GUICtrlSetData($VariableALire,$ReadNombresPossibleFormat) ExitLoop Else ExitLoop EndIf Wend FileClose($OpenNombresPossibleFormat) FileClose($OpenNombresPossible) FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossible.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison2.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\Comparaison1.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\NombresPossibleFormat.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckBloc.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckHorizontal.txt") FileDelete("c:\ResolutionSudoku\Case" & $Case & "Bloc" & $Bloc & "\CheckVertical.txt") Next Next EndSwitch Wend