Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
sudoku
Auteur Message
Répondre en citant
Message sudoku 
j'ai fait la génération de la grille du sudoku en aléatoire, sauf que ça prend beaucoup trop de temps.

voici le code :





@echo off
color f1

set /a x = 1
set /a n = 9


:: ligne A

set /a a1=%random% %% %n%+%x%

:a2
set /a a2=%random% %% %n%+%x%
if %a2% == %a1% (goto :a2)

:a3
set /a a3=%random% %% %n%+%x%
if %a3% == %a1% (goto :a3)
if %a3% == %a2% (goto :a3)

:a4
set /a a4=%random% %% %n%+%x%
if %a4% == %a1% (goto :a4)
if %a4% == %a2% (goto :a4)
if %a4% == %a3% (goto :a4)

:a5
set /a a5=%random% %% %n%+%x%
if %a5% == %a1% (goto :a5)
if %a5% == %a2% (goto :a5)
if %a5% == %a3% (goto :a5)
if %a5% == %a4% (goto :a5)

:a6
set /a a6=%random% %% %n%+%x%
if %a6% == %a1% (goto :a6)
if %a6% == %a2% (goto :a6)
if %a6% == %a3% (goto :a6)
if %a6% == %a4% (goto :a6)
if %a6% == %a5% (goto :a6)

:a7
set /a a7=%random% %% %n%+%x%
if %a7% == %a1% (goto :a7)
if %a7% == %a2% (goto :a7)
if %a7% == %a3% (goto :a7)
if %a7% == %a4% (goto :a7)
if %a7% == %a5% (goto :a7)
if %a7% == %a6% (goto :a7)

:a8
set /a a8=%random% %% %n%+%x%
if %a8% == %a1% (goto :a8)
if %a8% == %a2% (goto :a8)
if %a8% == %a3% (goto :a8)
if %a8% == %a4% (goto :a8)
if %a8% == %a5% (goto :a8)
if %a8% == %a6% (goto :a8)
if %a8% == %a7% (goto :a8)

:a9
set /a a9=%random% %% %n%+%x%
if %a9% == %a1% (goto :a9)
if %a9% == %a2% (goto :a9)
if %a9% == %a3% (goto :a9)
if %a9% == %a4% (goto :a9)
if %a9% == %a5% (goto :a9)
if %a9% == %a6% (goto :a9)
if %a9% == %a7% (goto :a9)
if %a9% == %a8% (goto :a9)

:: ligne B

:b1
echo b1
set /a b1=%random% %% %n%+%x%
if %b1% == %a1% (goto :b1)
if %b1% == %a2% (goto :b1)
if %b1% == %a3% (goto :b1)

:b2
echo b2
set /a b2=%random% %% %n%+%x%
if %b2% == %a1% (goto :b2)
if %b2% == %a2% (goto :b2)
if %b2% == %a3% (goto :b2)
if %b2% == %b1% (goto :b2)

:b3
echo b3
set /a b3=%random% %% %n%+%x%
if %b3% == %a1% (goto :b3)
if %b3% == %a2% (goto :b3)
if %b3% == %a3% (goto :b3)
if %b3% == %b1% (goto :b3)
if %b3% == %b2% (goto :b3)

:b4
echo b4
set /a b4=%random% %% %n%+%x%
if %b4% == %a4% (goto :b4)
if %b4% == %a5% (goto :b4)
if %b4% == %a6% (goto :b4)
if %b4% == %b1% (goto :b4)
if %b4% == %b2% (goto :b4)
if %b4% == %b3% (goto :b4)

:b5
echo b5
set /a b5=%random% %% %n%+%x%
if %b5% == %a4% (goto :b5)
if %b5% == %a5% (goto :b5)
if %b5% == %a6% (goto :b5)
if %b5% == %b1% (goto :b5)
if %b5% == %b2% (goto :b5)
if %b5% == %b3% (goto :b5)
if %b5% == %b4% (goto :b5)



:b6
echo b6
set /a b6=%random% %% %n%+%x%
if %b6% == %a4% (goto :b6)
if %b6% == %a5% (goto :b6)
if %b6% == %a6% (goto :b6)
if %b6% == %b1% (goto :b6)
if %b6% == %b2% (goto :b6)
if %b6% == %b3% (goto :b6)
if %b6% == %b4% (goto :b6)
if %b6% == %b5% (goto :b6)

:b7
echo b7
set /a b7=%random% %% %n%+%x%
if %b7% == %a7% (goto :b7)
if %b7% == %a8% (goto :b7)
if %b7% == %a9% (goto :b7)
if %b7% == %b1% (goto :b7)
if %b7% == %b2% (goto :b7)
if %b7% == %b3% (goto :b7)
if %b7% == %b4% (goto :b7)
if %b7% == %b5% (goto :b7)
if %b7% == %b6% (goto :b7)

:b8
echo b8
set /a b8=%random% %% %n%+%x%
if %b8% == %a7% (goto :b8)
if %b8% == %a8% (goto :b8)
if %b8% == %a9% (goto :b8)
if %b8% == %b1% (goto :b8)
if %b8% == %b2% (goto :b8)
if %b8% == %b3% (goto :b8)
if %b8% == %b4% (goto :b8)
if %b8% == %b5% (goto :b8)
if %b8% == %b6% (goto :b8)
if %b8% == %b7% (goto :b8)

:b9
echo b9
set /a b9=%random% %% %n%+%x%
if %b9% == %a7% (goto :b9)
if %b9% == %a8% (goto :b9)
if %b9% == %a9% (goto :b9)
if %b9% == %b1% (goto :b9)
if %b9% == %b2% (goto :b9)
if %b9% == %b3% (goto :b9)
if %b9% == %b4% (goto :b9)
if %b9% == %b5% (goto :b9)
if %b9% == %b6% (goto :b9)
if %b9% == %b7% (goto :b9)
if %b9% == %b8% (goto :b9)

:: ligne C

:c1
set /a c1=%random% %% %n%+%x%
if %c1% == %a1% (goto :c1)
if %c1% == %a2% (goto :c1)
if %c1% == %a3% (goto :c1)
if %c1% == %b1% (goto :c1)
if %c1% == %b2% (goto :c1)
if %c1% == %b3% (goto :c1)
echo c1

:c2
echo c2
set /a c2=%random% %% %n%+%x%
if %c2% == %a1% (goto :c2)
if %c2% == %a2% (goto :c2)
if %c2% == %a3% (goto :c2)
if %c2% == %b1% (goto :c2)
if %c2% == %b2% (goto :c2)
if %c2% == %b3% (goto :c2)
if %c2% == %c1% (goto :c2)

:c3
echo c3
set /a c3=%random% %% %n%+%x%
if %c3% == %a1% (goto :c3)
if %c3% == %a2% (goto :c3)
if %c3% == %a3% (goto :c3)
if %c3% == %b1% (goto :c3)
if %c3% == %b2% (goto :c3)
if %c3% == %b3% (goto :c3)
if %c3% == %c1% (goto :c3)
if %c3% == %c2% (goto :c3)

:c4
echo c4
set /a c4=%random% %% %n%+%x%
if %c4% == %a4% (goto :c4)
if %c4% == %a5% (goto :c4)
if %c4% == %a6% (goto :c4)
if %c4% == %b4% (goto :c4)
if %c4% == %b5% (goto :c4)
if %c4% == %b6% (goto :c4)
if %c4% == %c1% (goto :c4)
if %c4% == %c2% (goto :c4)
if %c4% == %c3% (goto :c4)

:c5
echo c5
set /a c5=%random% %% %n%+%x%
if %c5% == %a4% (goto :c5)
if %c5% == %a5% (goto :c5)
if %c5% == %a6% (goto :c5)
if %c5% == %b4% (goto :c5)
if %c5% == %b5% (goto :c5)
if %c5% == %b6% (goto :c5)
if %c5% == %c1% (goto :c5)
if %c5% == %c2% (goto :c5)
if %c5% == %c3% (goto :c5)
if %c5% == %c4% (goto :c5)

:c6
echo c6
set /a c6=%random% %% %n%+%x%
if %c6% == %a4% (goto :c6)
if %c6% == %a5% (goto :c6)
if %c6% == %a6% (goto :c6)
if %c6% == %b4% (goto :c6)
if %c6% == %b5% (goto :c6)
if %c6% == %b6% (goto :c6)
if %c6% == %c1% (goto :c6)
if %c6% == %c2% (goto :c6)
if %c6% == %c3% (goto :c6)
if %c6% == %c4% (goto :c6)
if %c6% == %c5% (goto :c6)


:c7
echo c7
set /a c7=%random% %% %n%+%x%
if %c7% == %a7% (goto :c7)
if %c7% == %a8% (goto :c7)
if %c7% == %a9% (goto :c7)
if %c7% == %b7% (goto :c7)
if %c7% == %b8% (goto :c7)
if %c7% == %b9% (goto :c7)
if %c7% == %c1% (goto :c7)
if %c7% == %c2% (goto :c7)
if %c7% == %c3% (goto :c7)
if %c7% == %c4% (goto :c7)
if %c7% == %c5% (goto :c7)
if %c7% == %c6% (goto :c7)

:c8
echo c8
set /a c8=%random% %% %n%+%x%
if %c8% == %a7% (goto :c8)
if %c8% == %a8% (goto :c8)
if %c8% == %a9% (goto :c8)
if %c8% == %b7% (goto :c8)
if %c8% == %b8% (goto :c8)
if %c8% == %b9% (goto :c8)
if %c8% == %c1% (goto :c8)
if %c8% == %c2% (goto :c8)
if %c8% == %c3% (goto :c8)
if %c8% == %c4% (goto :c8)
if %c8% == %c5% (goto :c8)
if %c8% == %c6% (goto :c8)
if %c8% == %c7% (goto :c8)

:c9
echo c9
set /a c9=%random% %% %n%+%x%
if %c9% == %a7% (goto :c9)
if %c9% == %a8% (goto :c9)
if %c9% == %a9% (goto :c9)
if %c9% == %b7% (goto :c9)
if %c9% == %b8% (goto :c9)
if %c9% == %b9% (goto :c9)
if %c9% == %c1% (goto :c9)
if %c9% == %c2% (goto :c9)
if %c9% == %c3% (goto :c9)
if %c9% == %c4% (goto :c9)
if %c9% == %c5% (goto :c9)
if %c9% == %c6% (goto :c9)
if %c9% == %c7% (goto :c9)
if %c9% == %c8% (goto :c9)


:: ligne D

:d1
echo d1
set /a d1=%random% %% %n%+%x%
if %d1% == %a1% (goto :d1)
if %d1% == %b1% (goto :d1)
if %d1% == %c1% (goto :d1)

:d2
echo d2
set /a d2=%random% %% %n%+%x%
if %d2% == %a2% (goto :d2)
if %d2% == %b2% (goto :d2)
if %d2% == %c2% (goto :d2)
if %d2% == %d1% (goto :d2)

:d3
echo d3
set /a d3=%random% %% %n%+%x%
if %d3% == %a3% (goto :d3)
if %d3% == %b3% (goto :d3)
if %d3% == %c3% (goto :d3)
if %d3% == %d1% (goto :d3)
if %d3% == %d2% (goto :d3)

:d4
echo d4
set /a d4=%random% %% %n%+%x%
if %d4% == %a4% (goto :d4)
if %d4% == %b4% (goto :d4)
if %d4% == %c4% (goto :d4)
if %d4% == %d1% (goto :d4)
if %d4% == %d2% (goto :d4)
if %d4% == %d3% (goto :d4)

:d5
echo d5
set /a d5=%random% %% %n%+%x%
if %d5% == %a5% (goto :d5)
if %d5% == %b5% (goto :d5)
if %d5% == %c5% (goto :d5)
if %d5% == %d1% (goto :d5)
if %d5% == %d2% (goto :d5)
if %d5% == %d3% (goto :d5)
if %d5% == %d4% (goto :d5)

:d6
echo d6
set /a d6=%random% %% %n%+%x%
if %d6% == %a6% (goto :d6)
if %d6% == %b6% (goto :d6)
if %d6% == %c6% (goto :d6)
if %d6% == %d1% (goto :d6)
if %d6% == %d2% (goto :d6)
if %d6% == %d3% (goto :d6)
if %d6% == %d4% (goto :d6)
if %d6% == %d5% (goto :d6)

:d7
echo d7
set /a d7=%random% %% %n%+%x%
if %d7% == %a7% (goto :d7)
if %d7% == %b7% (goto :d7)
if %d7% == %c7% (goto :d7)
if %d7% == %d1% (goto :d7)
if %d7% == %d2% (goto :d7)
if %d7% == %d3% (goto :d7)
if %d7% == %d4% (goto :d7)
if %d7% == %d5% (goto :d7)
if %d7% == %d6% (goto :d7)

:d8
echo d8
set /a d8=%random% %% %n%+%x%
if %d8% == %a8% (goto :d8)
if %d8% == %b8% (goto :d8)
if %d8% == %c8% (goto :d8)
if %d8% == %d1% (goto :d8)
if %d8% == %d2% (goto :d8)
if %d8% == %d3% (goto :d8)
if %d8% == %d4% (goto :d8)
if %d8% == %d5% (goto :d8)
if %d8% == %d6% (goto :d8)
if %d8% == %d7% (goto :d8)

:d9
echo d9
set /a d9=%random% %% %n%+%x%
if %d9% == %a9% (goto :d9)
if %d9% == %b9% (goto :d9)
if %d9% == %c9% (goto :d9)
if %d9% == %d1% (goto :d9)
if %d9% == %d2% (goto :d9)
if %d9% == %d3% (goto :d9)
if %d9% == %d4% (goto :d9)
if %d9% == %d5% (goto :d9)
if %d9% == %d6% (goto :d9)
if %d9% == %d7% (goto :d9)
if %d9% == %d8% (goto :d9)

:: ligne E

:e1
echo e1
set /a e1=%random% %% %n%+%x%
if %e1% == %a1% (goto :e1)
if %e1% == %b1% (goto :e1)
if %e1% == %c1% (goto :e1)
if %e1% == %d1% (goto :e1)
if %e1% == %d2% (goto :e1)
if %e1% == %d3% (goto :e1)

:e2
echo e2
set /a e2=%random% %% %n%+%x%
if %e2% == %a2% (goto :e2)
if %e2% == %b2% (goto :e2)
if %e2% == %c2% (goto :e2)
if %e2% == %d1% (goto :e2)
if %e2% == %d2% (goto :e2)
if %e2% == %d3% (goto :e2)
if %e2% == %e1% (goto :e2)



:e3
echo e3
set /a e3=%random% %% %n%+%x%
if %e3% == %a3% (goto :e3)
if %e3% == %b3% (goto :e3)
if %e3% == %c3% (goto :e3)
if %e3% == %d1% (goto :e3)
if %e3% == %d2% (goto :e3)
if %e3% == %d3% (goto :e3)
if %e3% == %e1% (goto :e3)
if %e3% == %e2% (goto :e3)

:e4
echo e4
set /a e4=%random% %% %n%+%x%
if %e4% == %a4% (goto :e4)
if %e4% == %b4% (goto :e4)
if %e4% == %c4% (goto :e4)
if %e4% == %d4% (goto :e4)
if %e4% == %d5% (goto :e4)
if %e4% == %d6% (goto :e4)
if %e4% == %e1% (goto :e4)
if %e4% == %e2% (goto :e4)
if %e4% == %e3% (goto :e4)

:e5
echo e5
set /a e5=%random% %% %n%+%x%
if %e5% == %a5% (goto :e5)
if %e5% == %b5% (goto :e5)
if %e5% == %c5% (goto :e5)
if %e5% == %d4% (goto :e5)
if %e5% == %d5% (goto :e5)
if %e5% == %d6% (goto :e5)
if %e5% == %e1% (goto :e5)
if %e5% == %e2% (goto :e5)
if %e5% == %e3% (goto :e5)
if %e5% == %e4% (goto :e5)

:e6
echo e6
set /a e6=%random% %% %n%+%x%
if %e6% == %a6% (goto :e6)
if %e6% == %b6% (goto :e6)
if %e6% == %c6% (goto :e6)
if %e6% == %d4% (goto :e6)
if %e6% == %d5% (goto :e6)
if %e6% == %d6% (goto :e6)
if %e6% == %e1% (goto :e6)
if %e6% == %e2% (goto :e6)
if %e6% == %e3% (goto :e6)
if %e6% == %e4% (goto :e6)
if %e6% == %e5% (goto :e6)

:e7
echo e7
set /a e7=%random% %% %n%+%x%
if %e7% == %a7% (goto :e7)
if %e7% == %b7% (goto :e7)
if %e7% == %c7% (goto :e7)
if %e7% == %d7% (goto :e7)
if %e7% == %d8% (goto :e7)
if %e7% == %d9% (goto :e7)
if %e7% == %e1% (goto :e7)
if %e7% == %e2% (goto :e7)
if %e7% == %e3% (goto :e7)
if %e7% == %e4% (goto :e7)
if %e7% == %e5% (goto :e7)
if %e7% == %e6% (goto :e7)

:e8
echo e8
set /a e8=%random% %% %n%+%x%
if %e8% == %a8% (goto :e8)
if %e8% == %b8% (goto :e8)
if %e8% == %c8% (goto :e8)
if %e8% == %d7% (goto :e8)
if %e8% == %d8% (goto :e8)
if %e8% == %d9% (goto :e8)
if %e8% == %e1% (goto :e8)
if %e8% == %e2% (goto :e8)
if %e8% == %e3% (goto :e8)
if %e8% == %e4% (goto :e8)
if %e8% == %e5% (goto :e8)
if %e8% == %e6% (goto :e8)
if %e8% == %e7% (goto :e8)

:e9
echo e9
set /a e9=%random% %% %n%+%x%
if %e9% == %a9% (goto :e9)
if %e9% == %b9% (goto :e9)
if %e9% == %c9% (goto :e9)
if %e9% == %d7% (goto :e9)
if %e9% == %d8% (goto :e9)
if %e9% == %d9% (goto :e9)
if %e9% == %e1% (goto :e9)
if %e9% == %e2% (goto :e9)
if %e9% == %e3% (goto :e9)
if %e9% == %e4% (goto :e9)
if %e9% == %e5% (goto :e9)
if %e9% == %e6% (goto :e9)
if %e9% == %e7% (goto :e9)
if %e9% == %e8% (goto :e9)

:: ligne F

:f1
echo f1
set /a f1=%random% %% %n%+%x%
if %f1% == %a1% (goto :f1)
if %f1% == %b1% (goto :f1)
if %f1% == %c1% (goto :f1)
if %f1% == %d1% (goto :f1)
if %f1% == %d2% (goto :f1)
if %f1% == %d3% (goto :f1)
if %f1% == %e1% (goto :f1)
if %f1% == %e2% (goto :f1)
if %f1% == %e3% (goto :f1)

:f2
echo f2
set /a f2=%random% %% %n%+%x%
if %f2% == %a2% (goto :f2)
if %f2% == %b2% (goto :f2)
if %f2% == %c2% (goto :f2)
if %f2% == %d1% (goto :f2)
if %f2% == %d2% (goto :f2)
if %f2% == %d3% (goto :f2)
if %f2% == %e1% (goto :f2)
if %f2% == %e2% (goto :f2)
if %f2% == %e3% (goto :f2)
if %f2% == %f1% (goto :f2)

:f3
echo f3
set /a f3=%random% %% %n%+%x%
if %f3% == %a3% (goto :f3)
if %f3% == %b3% (goto :f3)
if %f3% == %c3% (goto :f3)
if %f3% == %d1% (goto :f3)
if %f3% == %d2% (goto :f3)
if %f3% == %d3% (goto :f3)
if %f3% == %e1% (goto :f3)
if %f3% == %e2% (goto :f3)
if %f3% == %e3% (goto :f3)
if %f3% == %f1% (goto :f3)
if %f3% == %f2% (goto :f3)

:f4
echo f4
set /a f4=%random% %% %n%+%x%
if %f4% == %a4% (goto :f4)
if %f4% == %b4% (goto :f4)
if %f4% == %c4% (goto :f4)
if %f4% == %d4% (goto :f4)
if %f4% == %d5% (goto :f4)
if %f4% == %d6% (goto :f4)
if %f4% == %e4% (goto :f4)
if %f4% == %e5% (goto :f4)
if %f4% == %e6% (goto :f4)
if %f4% == %f1% (goto :f4)
if %f4% == %f2% (goto :f4)
if %f4% == %f3% (goto :f4)

:f5
echo f5
set /a f5=%random% %% %n%+%x%
if %f5% == %a5% (goto :f5)
if %f5% == %b5% (goto :f5)
if %f5% == %c5% (goto :f5)
if %f5% == %d4% (goto :f5)
if %f5% == %d5% (goto :f5)
if %f5% == %d6% (goto :f5)
if %f5% == %e4% (goto :f5)
if %f5% == %e5% (goto :f5)
if %f5% == %e6% (goto :f5)
if %f5% == %f1% (goto :f5)
if %f5% == %f2% (goto :f5)
if %f5% == %f3% (goto :f5)
if %f5% == %f4% (goto :f5)

:f6
echo f6
set /a f6=%random% %% %n%+%x%
if %f6% == %a6% (goto :f6)
if %f6% == %b6% (goto :f6)
if %f6% == %c6% (goto :f6)
if %f6% == %d4% (goto :f6)
if %f6% == %d5% (goto :f6)
if %f6% == %d6% (goto :f6)
if %f6% == %e4% (goto :f6)
if %f6% == %e5% (goto :f6)
if %f6% == %e6% (goto :f6)
if %f6% == %f1% (goto :f6)
if %f6% == %f2% (goto :f6)
if %f6% == %f3% (goto :f6)
if %f6% == %f4% (goto :f6)
if %f6% == %f5% (goto :f6)

:f7
echo f7
set /a f7=%random% %% %n%+%x%
if %f7% == %a7% (goto :f7)
if %f7% == %b7% (goto :f7)
if %f7% == %c7% (goto :f7)
if %f7% == %d7% (goto :f7)
if %f7% == %d8% (goto :f7)
if %f7% == %d9% (goto :f7)
if %f7% == %e7% (goto :f7)
if %f7% == %e8% (goto :f7)
if %f7% == %e9% (goto :f7)
if %f7% == %f1% (goto :f7)
if %f7% == %f2% (goto :f7)
if %f7% == %f3% (goto :f7)
if %f7% == %f4% (goto :f7)
if %f7% == %f5% (goto :f7)
if %f7% == %f6% (goto :f7)

:f8
echo f8
set /a f8=%random% %% %n%+%x%
if %f8% == %a8% (goto :f8)
if %f8% == %b8% (goto :f8)
if %f8% == %c8% (goto :f8)
if %f8% == %d7% (goto :f8)
if %f8% == %d8% (goto :f8)
if %f8% == %d9% (goto :f8)
if %f8% == %e7% (goto :f8)
if %f8% == %e8% (goto :f8)
if %f8% == %e9% (goto :f8)
if %f8% == %f1% (goto :f8)
if %f8% == %f2% (goto :f8)
if %f8% == %f3% (goto :f8)
if %f8% == %f4% (goto :f8)
if %f8% == %f5% (goto :f8)
if %f8% == %f6% (goto :f8)
if %f8% == %f7% (goto :f8)

:f9
echo f9
set /a f9=%random% %% %n%+%x%
if %f9% == %a9% (goto :f9)
if %f9% == %b9% (goto :f9)
if %f9% == %c9% (goto :f9)
if %f9% == %d7% (goto :f9)
if %f9% == %d8% (goto :f9)
if %f9% == %d9% (goto :f9)
if %f9% == %e7% (goto :f9)
if %f9% == %e8% (goto :f9)
if %f9% == %e9% (goto :f9)
if %f9% == %f1% (goto :f9)
if %f9% == %f2% (goto :f9)
if %f9% == %f3% (goto :f9)
if %f9% == %f4% (goto :f9)
if %f9% == %f5% (goto :f9)
if %f9% == %f6% (goto :f9)
if %f9% == %f7% (goto :f9)
if %f9% == %f8% (goto :f9)

:: ligne G

:g1
echo g1
set /a g1=%random% %% %n%+%x%
if %g1% == %a1% (goto :g1)
if %g1% == %b1% (goto :g1)
if %g1% == %c1% (goto :g1)
if %g1% == %d1% (goto :g1)
if %g1% == %e1% (goto :g1)
if %g1% == %f1% (goto :g1)

:g2
echo g2
set /a g2=%random% %% %n%+%x%
if %g2% == %a2% (goto :g2)
if %g2% == %b2% (goto :g2)
if %g2% == %c2% (goto :g2)
if %g2% == %d2% (goto :g2)
if %g2% == %e2% (goto :g2)
if %g2% == %f2% (goto :g2)
if %g2% == %g1% (goto :g2)

:g3
echo g3
set /a g3=%random% %% %n%+%x%
if %g3% == %a3% (goto :g3)
if %g3% == %b3% (goto :g3)
if %g3% == %c3% (goto :g3)
if %g3% == %d3% (goto :g3)
if %g3% == %e3% (goto :g3)
if %g3% == %f3% (goto :g3)
if %g3% == %g1% (goto :g3)
if %g3% == %g2% (goto :g3)

:g4
echo g4
set /a g4=%random% %% %n%+%x%
if %g4% == %a4% (goto :g4)
if %g4% == %b4% (goto :g4)
if %g4% == %c4% (goto :g4)
if %g4% == %d4% (goto :g4)
if %g4% == %e4% (goto :g4)
if %g4% == %f4% (goto :g1)
if %g4% == %g1% (goto :g4)
if %g4% == %g2% (goto :g4)
if %g4% == %g3% (goto :g4)

:g5
echo g5
set /a g5=%random% %% %n%+%x%
if %g5% == %a5% (goto :g5)
if %g5% == %b5% (goto :g5)
if %g5% == %c5% (goto :g5)
if %g5% == %d5% (goto :g5)
if %g5% == %e5% (goto :g5)
if %g5% == %f5% (goto :g5)
if %g5% == %g1% (goto :g5)
if %g5% == %g2% (goto :g5)
if %g5% == %g3% (goto :g5)
if %g5% == %g4% (goto :g5)

:g6
echo g6
set /a g6=%random% %% %n%+%x%
if %g6% == %a6% (goto :g6)
if %g6% == %b6% (goto :g6)
if %g6% == %c6% (goto :g6)
if %g6% == %d6% (goto :g6)
if %g6% == %e6% (goto :g6)
if %g6% == %f6% (goto :g6)
if %g6% == %g1% (goto :g6)
if %g6% == %g2% (goto :g6)
if %g6% == %g3% (goto :g6)
if %g6% == %g4% (goto :g6)
if %g6% == %g5% (goto :g6)

:g7
echo g7
set /a g7=%random% %% %n%+%x%
if %g7% == %a7% (goto :g7)
if %g7% == %b7% (goto :g7)
if %g7% == %c7% (goto :g7)
if %g7% == %d7% (goto :g7)
if %g7% == %e7% (goto :g7)
if %g7% == %f7% (goto :g7)
if %g7% == %g1% (goto :g7)
if %g7% == %g2% (goto :g7)
if %g7% == %g3% (goto :g7)
if %g7% == %g4% (goto :g7)
if %g7% == %g5% (goto :g7)
if %g7% == %g6% (goto :g7)

:g8
echo g8
set /a g8=%random% %% %n%+%x%
if %g8% == %a8% (goto :g8)
if %g8% == %b8% (goto :g8)
if %g8% == %c8% (goto :g8)
if %g8% == %d8% (goto :g8)
if %g8% == %e8% (goto :g8)
if %g8% == %f8% (goto :g8)
if %g8% == %g1% (goto :g8)
if %g8% == %g2% (goto :g8)
if %g8% == %g3% (goto :g8)
if %g8% == %g4% (goto :g8)
if %g8% == %g5% (goto :g8)
if %g8% == %g6% (goto :g8)
if %g8% == %g7% (goto :g8)

:g9
echo g9
set /a g9=%random% %% %n%+%x%
if %g9% == %a9% (goto :g9)
if %g9% == %b9% (goto :g9)
if %g9% == %c9% (goto :g9)
if %g9% == %d9% (goto :g9)
if %g9% == %e9% (goto :g9)
if %g9% == %f9% (goto :g9)
if %g9% == %g1% (goto :g9)
if %g9% == %g2% (goto :g9)
if %g9% == %g3% (goto :g9)
if %g9% == %g4% (goto :g9)
if %g9% == %g5% (goto :g9)
if %g9% == %g6% (goto :g9)
if %g9% == %g7% (goto :g9)
if %g9% == %g8% (goto :g9)

:: ligne H

:h1
echo h1
set /a h1=%random% %% %n%+%x%
if %h1% == %a1% (goto :h1)
if %h1% == %b1% (goto :h1)
if %h1% == %c1% (goto :h1)
if %h1% == %d1% (goto :h1)
if %h1% == %e1% (goto :h1)
if %h1% == %f1% (goto :h1)
if %h1% == %g1% (goto :h1)
if %h1% == %g2% (goto :h1)
if %h1% == %g3% (goto :h1)

:h2
echo h2
set /a h2=%random% %% %n%+%x%
if %h2% == %a2% (goto :h2)
if %h2% == %b2% (goto :h2)
if %h2% == %c2% (goto :h2)
if %h2% == %d2% (goto :h2)
if %h2% == %e2% (goto :h2)
if %h2% == %f2% (goto :h2)
if %h2% == %g1% (goto :h2)
if %h2% == %g2% (goto :h2)
if %h2% == %g3% (goto :h2)
if %h2% == %h1% (goto :h2)

:h3
echo h3
set /a h3=%random% %% %n%+%x%
if %h3% == %a3% (goto :h3)
if %h3% == %b3% (goto :h3)
if %h3% == %c3% (goto :h3)
if %h3% == %d3% (goto :h3)
if %h3% == %e3% (goto :h3)
if %h3% == %f3% (goto :h3)
if %h3% == %g1% (goto :h3)
if %h3% == %g2% (goto :h3)
if %h3% == %g3% (goto :h3)
if %h3% == %h1% (goto :h3)
if %h3% == %h2% (goto :h3)

:h4
echo h4
set /a h4=%random% %% %n%+%x%
if %h4% == %a4% (goto :h4)
if %h4% == %b4% (goto :h4)
if %h4% == %c4% (goto :h4)
if %h4% == %d4% (goto :h4)
if %h4% == %e4% (goto :h4)
if %h4% == %f4% (goto :h4)
if %h4% == %g4% (goto :h4)
if %h4% == %g5% (goto :h4)
if %h4% == %g6% (goto :h4)
if %h4% == %h1% (goto :h4)
if %h4% == %h2% (goto :h4)
if %h4% == %h3% (goto :h4)

:h5
echo h5
set /a h5=%random% %% %n%+%x%
if %h5% == %a5% (goto :h5)
if %h5% == %b5% (goto :h5)
if %h5% == %c5% (goto :h5)
if %h5% == %d5% (goto :h5)
if %h5% == %e5% (goto :h5)
if %h5% == %f5% (goto :h5)
if %h5% == %g4% (goto :h5)
if %h5% == %g5% (goto :h5)
if %h5% == %g6% (goto :h5)
if %h5% == %h1% (goto :h5)
if %h5% == %h2% (goto :h5)
if %h5% == %h3% (goto :h5)
if %h5% == %h4% (goto :h5)

:h6
echo h6
set /a h6=%random% %% %n%+%x%
if %h6% == %a6% (goto :h6)
if %h6% == %b6% (goto :h6)
if %h6% == %c6% (goto :h6)
if %h6% == %d6% (goto :h6)
if %h6% == %e6% (goto :h6)
if %h6% == %f6% (goto :h6)
if %h6% == %g4% (goto :h6)
if %h6% == %g5% (goto :h6)
if %h6% == %g6% (goto :h6)
if %h6% == %h1% (goto :h6)
if %h6% == %h2% (goto :h6)
if %h6% == %h3% (goto :h6)
if %h6% == %h4% (goto :h6)
if %h6% == %h5% (goto :h6)

:h7
echo h7
set /a h7=%random% %% %n%+%x%
if %h7% == %a7% (goto :h7)
if %h7% == %b7% (goto :h7)
if %h7% == %c7% (goto :h7)
if %h7% == %d7% (goto :h7)
if %h7% == %e7% (goto :h7)
if %h7% == %f7% (goto :h7)
if %h7% == %g7% (goto :h7)
if %h7% == %g8% (goto :h7)
if %h7% == %g9% (goto :h7)
if %h7% == %h1% (goto :h7)
if %h7% == %h2% (goto :h7)
if %h7% == %h3% (goto :h7)
if %h7% == %h4% (goto :h7)
if %h7% == %h5% (goto :h7)
if %h7% == %h6% (goto :h7)

:h8
echo h8
set /a h8=%random% %% %n%+%x%
if %h8% == %a8% (goto :h8)
if %h8% == %b8% (goto :h8)
if %h8% == %c8% (goto :h8)
if %h8% == %d8% (goto :h8)
if %h8% == %e8% (goto :h8)
if %h8% == %f8% (goto :h8)
if %h8% == %g7% (goto :h8)
if %h8% == %g8% (goto :h8)
if %h8% == %g9% (goto :h8)
if %h8% == %h1% (goto :h8)
if %h8% == %h2% (goto :h8)
if %h8% == %h3% (goto :h8)
if %h8% == %h4% (goto :h8)
if %h8% == %h5% (goto :h8)
if %h8% == %h6% (goto :h8)
if %h8% == %h7% (goto :h8)

:h9
echo h9
set /a h9=%random% %% %n%+%x%
if %h9% == %a9% (goto :h9)
if %h9% == %b9% (goto :h9)
if %h9% == %c9% (goto :h9)
if %h9% == %d9% (goto :h9)
if %h9% == %e9% (goto :h9)
if %h9% == %f9% (goto :h9)
if %h9% == %g7% (goto :h9)
if %h9% == %g8% (goto :h9)
if %h9% == %g9% (goto :h9)
if %h9% == %h1% (goto :h9)
if %h9% == %h2% (goto :h9)
if %h9% == %h3% (goto :h9)
if %h9% == %h4% (goto :h9)
if %h9% == %h5% (goto :h9)
if %h9% == %h6% (goto :h9)
if %h9% == %h7% (goto :h9)
if %h9% == %h8% (goto :h9)

:: ligne I

:i1
echo i1
set /a i1=%random% %% %n%+%x%
if %i1% == %a1% (goto :i1)
if %i1% == %b1% (goto :i1)
if %i1% == %c1% (goto :i1)
if %i1% == %d1% (goto :i1)
if %i1% == %e1% (goto :i1)
if %i1% == %f1% (goto :i1)
if %i1% == %g1% (goto :i1)
if %i1% == %g2% (goto :i1)
if %i1% == %g3% (goto :i1)
if %i1% == %h1% (goto :i1)
if %i1% == %h2% (goto :i1)
if %i1% == %h3% (goto :i1)

:i2
echo i2
set /a i2=%random% %% %n%+%x%
if %i2% == %a2% (goto :i2)
if %i2% == %b2% (goto :i2)
if %i2% == %c2% (goto :i2)
if %i2% == %d2% (goto :i2)
if %i2% == %e2% (goto :i2)
if %i2% == %f2% (goto :i2)
if %i2% == %g1% (goto :i2)
if %i2% == %g2% (goto :i2)
if %i2% == %g3% (goto :i2)
if %i2% == %h1% (goto :i2)
if %i2% == %h2% (goto :i2)
if %i2% == %h3% (goto :i2)
if %i2% == %i1% (goto :i2)

:i3
echo i3
set /a i3=%random% %% %n%+%x%
if %i3% == %a3% (goto :i3)
if %i3% == %b3% (goto :i3)
if %i3% == %c3% (goto :i3)
if %i3% == %d3% (goto :i3)
if %i3% == %e3% (goto :i3)
if %i3% == %f3% (goto :i3)
if %i3% == %g1% (goto :i3)
if %i3% == %g2% (goto :i3)
if %i3% == %g3% (goto :i3)
if %i3% == %h1% (goto :i3)
if %i3% == %h2% (goto :i3)
if %i3% == %h3% (goto :i3)
if %i3% == %i1% (goto :i3)
if %i3% == %i2% (goto :i3)

:i4
echo i4
set /a i4=%random% %% %n%+%x%
if %i4% == %a4% (goto :i4)
if %i4% == %b4% (goto :i4)
if %i4% == %c4% (goto :i4)
if %i4% == %d4% (goto :i4)
if %i4% == %e4% (goto :i4)
if %i4% == %f4% (goto :i4)
if %i4% == %g4% (goto :i4)
if %i4% == %g5% (goto :i4)
if %i4% == %g6% (goto :i4)
if %i4% == %h4% (goto :i4)
if %i4% == %h5% (goto :i4)
if %i4% == %h6% (goto :i4)
if %i4% == %i1% (goto :i4)
if %i4% == %i2% (goto :i4)
if %i4% == %i3% (goto :i4)

:i5
echo i5
set /a i5=%random% %% %n%+%x%
if %i5% == %a5% (goto :i5)
if %i5% == %b5% (goto :i5)
if %i5% == %c5% (goto :i5)
if %i5% == %d5% (goto :i5)
if %i5% == %e5% (goto :i5)
if %i5% == %f5% (goto :i5)
if %i5% == %g4% (goto :i5)
if %i5% == %g5% (goto :i5)
if %i5% == %g6% (goto :i5)
if %i5% == %h4% (goto :i5)
if %i5% == %h5% (goto :i5)
if %i5% == %h6% (goto :i5)
if %i5% == %i1% (goto :i5)
if %i5% == %i2% (goto :i5)
if %i5% == %i3% (goto :i5)
if %i5% == %i4% (goto :i5)

:i6
echo i6
set /a i6=%random% %% %n%+%x%
if %i6% == %a6% (goto :i6)
if %i6% == %b6% (goto :i6)
if %i6% == %c6% (goto :i6)
if %i6% == %d6% (goto :i6)
if %i6% == %e6% (goto :i6)
if %i6% == %f6% (goto :i6)
if %i6% == %g4% (goto :i6)
if %i6% == %g5% (goto :i6)
if %i6% == %g6% (goto :i6)
if %i6% == %h4% (goto :i6)
if %i6% == %h5% (goto :i6)
if %i6% == %h6% (goto :i6)
if %i6% == %i1% (goto :i6)
if %i6% == %i2% (goto :i6)
if %i6% == %i3% (goto :i6)
if %i6% == %i4% (goto :i6)
if %i6% == %i5% (goto :i6)

:i7
echo i7
set /a i7=%random% %% %n%+%x%
if %i7% == %a7% (goto :i7)
if %i7% == %b7% (goto :i7)
if %i7% == %c7% (goto :i7)
if %i7% == %d7% (goto :i7)
if %i7% == %e7% (goto :i7)
if %i7% == %f7% (goto :i7)
if %i7% == %g7% (goto :i7)
if %i7% == %g8% (goto :i7)
if %i7% == %g9% (goto :i7)
if %i7% == %h7% (goto :i7)
if %i7% == %h8% (goto :i7)
if %i7% == %h9% (goto :i7)
if %i7% == %i1% (goto :i7)
if %i7% == %i2% (goto :i7)
if %i7% == %i3% (goto :i7)
if %i7% == %i4% (goto :i7)
if %i7% == %i5% (goto :i7)
if %i7% == %i6% (goto :i7)

:i8
echo i8
set /a i8=%random% %% %n%+%x%
if %i8% == %a8% (goto :i8)
if %i8% == %b8% (goto :i8)
if %i8% == %c8% (goto :i8)
if %i8% == %d8% (goto :i8)
if %i8% == %e8% (goto :i8)
if %i8% == %f8% (goto :i8)
if %i8% == %g7% (goto :i8)
if %i8% == %g8% (goto :i8)
if %i8% == %g9% (goto :i8)
if %i8% == %h7% (goto :i8)
if %i8% == %h8% (goto :i8)
if %i8% == %h9% (goto :i8)
if %i8% == %i1% (goto :i8)
if %i8% == %i2% (goto :i8)
if %i8% == %i3% (goto :i8)
if %i8% == %i4% (goto :i8)
if %i8% == %i5% (goto :i8)
if %i8% == %i6% (goto :i8)
if %i8% == %i7% (goto :i8)

:i9
echo i9
set /a i9=%random% %% %n%+%x%
if %i9% == %a9% (goto :i9)
if %i9% == %b9% (goto :i9)
if %i9% == %c9% (goto :i9)
if %i9% == %d9% (goto :i9)
if %i9% == %e9% (goto :i9)
if %i9% == %f9% (goto :i9)
if %i9% == %g7% (goto :i9)
if %i9% == %g8% (goto :i9)
if %i9% == %g9% (goto :i9)
if %i9% == %h7% (goto :i9)
if %i9% == %h8% (goto :i9)
if %i9% == %h9% (goto :i9)
if %i9% == %i1% (goto :i9)
if %i9% == %i2% (goto :i9)
if %i9% == %i3% (goto :i9)
if %i9% == %i4% (goto :i9)
if %i9% == %i5% (goto :i9)
if %i9% == %i6% (goto :i9)
if %i9% == %i7% (goto :i9)
if %i9% == %i8% (goto :i9)



echo 0000000000000000000000000000000000000
echo 0 * * 0 * * 0 * * 0
echo 0 %a1% * %a2% * %a3% 0 %a4% * %a5% * %a6% 0 %a7% * %a8% * %a9% 0 A
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********0***********0
echo 0 * * 0 * * 0 * * 0
echo 0 %b1% * %b2% * %b3% 0 %b4% * %b5% * %b6% 0 %b7% * %b8% * %b9% 0 B
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********0***********0
echo 0 * * 0 * * 0 * * 0
echo 0 %c1% * %c2% * %c3% 0 %c4% * %c5% * %c6% 0 %c7% * %c8% * %c9% 0 C
echo 0 * * 0 * * 0 * * 0
echo 0000000000000000000000000000000000000
echo 0 * * 0 * * 0 * * 0
echo 0 %d1% * %d2% * %d3% 0 %d4% * %d5% * %d6% 0 %d7% * %d8% * %d9% 0 D
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********0***********0
echo 0 * * 0 * * 0 * * 0
echo 0 %e1% * %e2% * %e3% 0 %e4% * %e5% * %e6% 0 %e7% * %e8% * %e9% 0 E
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********0***********0
echo 0 * * 0 * * 0 * * 0
echo 0 %f1% * %f2% * %f3% 0 %f4% * %f5% * %f6% 0 %f7% * %f8% * %f9% 0 F
echo 0 * * 0 * * 0 * * 0
echo 0000000000000000000000000000000000000
echo 0 * * 0 * * 0 * * 0
echo 0 %g1% * %g2% * %g3% 0 %g4% * %g5% * %g6% 0 %g7% * %g8% * %g9% 0 G
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********0***********0
echo 0 * * 0 * * 0 * * 0
echo 0 %h1% * %h2% * %h3% 0 %h4% * %h5% * %h6% 0 %h7% * %h8% * %h9% 0 H
echo 0 * * 0 * * 0 * * 0
echo 0***********0***********************0
echo 0 * * 0 * * 0 * * 0
echo 0 %i1% * %i2% * %i3% 0 %i4% * %i5% * %i6% 0 %i7% * %i8% * %i9% 0 I
echo 0 * * 0 * * 0 * * 0
echo 0000000000000000000000000000000000000

pause



minimum : x = 1
maximum : n = 9


la génération de la grille peut se bloquer de b7 a b9, c4 a c9, d7 a d9, e4 a e9, f1 a f9,g4 a g9, h1 a h9 et de i1 a i9.





Dernière édition par mixel le Sam 8 Juil 2017 - 14:55; édité 2 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message sudoku 
Bonsoir,

Trop de répétitions dans ton code, on peut faire beaucoup plus court en ajoutant des boucles FOR :

Code:
@echo off
title Sudoku
mode con: cols=60 lines=50
color f1
Setlocal enabledelayedexpansion
     
echo. & set /a ligne=0

for %%E in (A B C D E F G H I) do (
set /a ligne+=1

for %%P in (1 4 7) do (if !ligne! EQU %%P (echo 0000000000000000000000000000000000000))

for %%J in (2 3 5 6 8 9) do (if !ligne! EQU %%J (echo 0***********0***********0***********0))
     
for /L %%H in (1,1,9) do (call :check %%E %%H)

echo 0 * * 0 * * 0 * * 0
echo 0 !%%E1! * !%%E2! * !%%E3! 0 !%%E4! * !%%E5! * !%%E6! 0 !%%E7! * !%%E8! * !%%E9! 0   %%E
echo 0 * * 0 * * 0 * * 0

if !ligne! EQU 9 (echo 0000000000000000000000000000000000000)

)
     
echo. & pause
Endlocal
exit

:check
set doublon=0
set /a %1%2=!random! %%9 +1
set /a max=%2-1

for /L %%X in (1,1,!max!) do (if !%1%2!==!var%1%%X! (set doublon=1))

if !doublon!==1 (goto check) else (set /a var%1%2=!%1%2!)

goto :eof

rem




Répondre en citant
Message sudoku 
Il faut aussi vérifier, si les colonnes et les carrés n'ont pas de chiffres en double.

de mon coté, je suis en train de faire un autre système de génération de grille :

une case de chaque carré est rempli par un 1, puis il faut vérifier si il y a plusieurs 1 sur les lignes et colonnes

et on recommence jusqu'à 9.

j'ai des valeurs a transférer de la variable a1 vers sa1, jusqu'à i1 vers si9.


Code:

set /a sa1 = %a1%
set /a sa9 = %a9%
--
--
--
set /a si9 = %i9%




Dernière édition par mixel le Ven 7 Juil 2017 - 19:12; édité 2 fois
Répondre en citant
Message sudoku 
Code:
for %%A in (a b c d e f g h i) do for /l %%B in (1,1,9) do set %%A%%B=0
Plutôt que de faire des dizaines de lignes.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message sudoku 
(j'ai répondu à la même question là http://batch.xoo.it/t1517-LA-BOUCLE-FOR.htm?start=15#p43922 et je viens de me rendre compte que TS a répondu ici)

TSnake41 a écrit:
Code:
do set %%A%%B=0

Pourquoi tu set toutes les variables à 0 ?




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message sudoku 
Hugo7 a écrit:
(j'ai répondu à la même question là http://batch.xoo.it/t1517-LA-BOUCLE-FOR.htm?start=15#p43922 et je viens de me rendre compte que TS a répondu ici)

TSnake41 a écrit:
Code:
do set %%A%%B=0

Pourquoi tu set toutes les variables à 0 ?
Car c'était le code de base avant la modification.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message sudoku 
Ah ok Laughing
Preuve qu'on comprend plus rien quand les gens changent leurs posts Sad




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message sudoku 
j'ai fait un algorithme qui remplie chaque carré avec des chiffres, sauf qu'il peut se bloquer


Code:

@echo off
Setlocal EnableDelayedExpansion
color f1
set /a x = 1
set /a n = 9
set /a p = 1
set /a bloque = 0
set /a nb = 30
set /a error = 0
set /a lv = 5

for %%A in (a b c d e f g h i) do for /l %%B in (1,1,9) do set %%A%%B=0

:r1
set /a u1=%random% %% %n%+%x%
if %u1% == 1 if %a1% == 0 (set /a a1 = %p% & set /a v1 = 1) else (goto :r1)
if %u1% == 2 if %a2% == 0 (set /a a2 = %p% & set /a v1 = 4) else (goto :r1)
if %u1% == 3 if %a3% == 0 (set /a a3 = %p% & set /a v1 = 7) else (goto :r1)
if %u1% == 4 if %b1% == 0 (set /a b1 = %p% & set /a v1 = 2) else (goto :r1)
if %u1% == 5 if %b2% == 0 (set /a b2 = %p% & set /a v1 = 5) else (goto :r1)
if %u1% == 6 if %b3% == 0 (set /a b3 = %p% & set /a v1 = 8) else (goto :r1)
if %u1% == 7 if %c1% == 0 (set /a c1 = %p% & set /a v1 = 3) else (goto :r1)
if %u1% == 8 if %c2% == 0 (set /a c2 = %p% & set /a v1 = 6) else (goto :r1)
if %u1% == 9 if %c3% == 0 (set /a c3 = %p% & set /a v1 = 9) else (goto :r1)
set /a u1%p% = %u1%
set /a v1%p% = %v1%
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & goto :s1)
goto :r1
:s1
echo carre 1 ok

:r2
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %a4% (set /a a4 = 0)
if %p% == %a5% (set /a a5 = 0)
if %p% == %a6% (set /a a6 = 0)
if %p% == %b4% (set /a b4 = 0)
if %p% == %b5% (set /a b5 = 0)
if %p% == %b6% (set /a b6 = 0)
if %p% == %c4% (set /a c4 = 0)
if %p% == %c5% (set /a c5 = 0)
if %p% == %c6% (set /a c6 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r2)
:r22
set /a u2=%random% %% %n%+%x%
if %u2% == 1 if %a4% == 0 (set /a a4 = %p% & set /a v2 = 1) else (goto :r22)
if %u2% == 2 if %a5% == 0 (set /a a5 = %p% & set /a v2 = 4) else (goto :r22)
if %u2% == 3 if %a6% == 0 (set /a a6 = %p% & set /a v2 = 7) else (goto :r22)
if %u2% == 4 if %b4% == 0 (set /a b4 = %p% & set /a v2 = 2) else (goto :r22)
if %u2% == 5 if %b5% == 0 (set /a b5 = %p% & set /a v2 = 5) else (goto :r22)
if %u2% == 6 if %b6% == 0 (set /a b6 = %p% & set /a v2 = 8) else (goto :r22)
if %u2% == 7 if %c4% == 0 (set /a c4 = %p% & set /a v2 = 3) else (goto :r22)
if %u2% == 8 if %c5% == 0 (set /a c5 = %p% & set /a v2 = 6) else (goto :r22)
if %u2% == 9 if %c6% == 0 (set /a c6 = %p% & set /a v2 = 9) else (goto :r22)
set /a u2%p% = %u2%
set /a v2%p% = %v2%
if !u1%p%! GEQ 1 if !u1%p%! LEQ 3 if !u2%p%! GEQ 1 if !u2%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r2)
if !u1%p%! GEQ 4 if !u1%p%! LEQ 6 if !u2%p%! GEQ 4 if !u2%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r2)
if !u1%p%! GEQ 7 if !u1%p%! LEQ 9 if !u2%p%! GEQ 7 if !u2%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r2)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s2)
goto :r2
:s2
echo carre 2 ok

:r3
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0 & echo bloque)
if %p% LEQ 0 (set /a p = 1)
if %p% == %a7% (set /a a7 = 0)
if %p% == %a8% (set /a a8 = 0)
if %p% == %a9% (set /a a9 = 0)
if %p% == %b7% (set /a b7 = 0)
if %p% == %b8% (set /a b8 = 0)
if %p% == %b9% (set /a b9 = 0)
if %p% == %c7% (set /a c7 = 0)
if %p% == %c8% (set /a c8 = 0)
if %p% == %c9% (set /a c9 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r3)
:r33
set /a u3=%random% %% %n%+%x%
if %u3% == 1 if %a7% == 0 (set /a a7 = %p% & set /a v3 = 1) else (goto :r33)
if %u3% == 2 if %a8% == 0 (set /a a8 = %p% & set /a v3 = 4) else (goto :r33)
if %u3% == 3 if %a9% == 0 (set /a a9 = %p% & set /a v3 = 7) else (goto :r33)
if %u3% == 4 if %b7% == 0 (set /a b7 = %p% & set /a v3 = 2) else (goto :r33)
if %u3% == 5 if %b8% == 0 (set /a b8 = %p% & set /a v3 = 5) else (goto :r33)
if %u3% == 6 if %b9% == 0 (set /a b9 = %p% & set /a v3 = 8) else (goto :r33)
if %u3% == 7 if %c7% == 0 (set /a c7 = %p% & set /a v3 = 3) else (goto :r33)
if %u3% == 8 if %c8% == 0 (set /a c8 = %p% & set /a v3 = 6) else (goto :r33)
if %u3% == 9 if %c9% == 0 (set /a c9 = %p% & set /a v3 = 9) else (goto :r33)
set /a u3%p% = %u3%
set /a v3%p% = %v3%
if !u1%p%! GEQ 1 if !u1%p%! LEQ 3 if !u3%p%! GEQ 1 if !u3%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r3)
if !u1%p%! GEQ 4 if !u1%p%! LEQ 6 if !u3%p%! GEQ 4 if !u3%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r3)
if !u1%p%! GEQ 7 if !u1%p%! LEQ 9 if !u3%p%! GEQ 7 if !u3%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r3)
if !u2%p%! GEQ 1 if !u2%p%! LEQ 3 if !u3%p%! GEQ 1 if !u3%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r3)
if !u2%p%! GEQ 4 if !u2%p%! LEQ 6 if !u3%p%! GEQ 4 if !u3%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r3)
if !u2%p%! GEQ 7 if !u2%p%! LEQ 9 if !u3%p%! GEQ 7 if !u3%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r3)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s3)
goto :r3
:s3
echo carre 3 ok

:r4
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %d1% (set /a d1 = 0)
if %p% == %d2% (set /a d2 = 0)
if %p% == %d3% (set /a d3 = 0)
if %p% == %e1% (set /a e1 = 0)
if %p% == %e2% (set /a e2 = 0)
if %p% == %e3% (set /a e3 = 0)
if %p% == %f1% (set /a f1 = 0)
if %p% == %f2% (set /a f2 = 0)
if %p% == %f3% (set /a f3 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r4)
:r44
set /a u4=%random% %% %n%+%x%
if %u4% == 1 if %d1% == 0 (set /a d1 = %p% & set /a v4 = 1) else (goto :r44)
if %u4% == 2 if %d2% == 0 (set /a d2 = %p% & set /a v4 = 4) else (goto :r44)
if %u4% == 3 if %d3% == 0 (set /a d3 = %p% & set /a v4 = 7) else (goto :r44)
if %u4% == 4 if %e1% == 0 (set /a e1 = %p% & set /a v4 = 2) else (goto :r44)
if %u4% == 5 if %e2% == 0 (set /a e2 = %p% & set /a v4 = 5) else (goto :r44)
if %u4% == 6 if %e3% == 0 (set /a e3 = %p% & set /a v4 = 8) else (goto :r44)
if %u4% == 7 if %f1% == 0 (set /a f1 = %p% & set /a v4 = 3) else (goto :r44)
if %u4% == 8 if %f2% == 0 (set /a f2 = %p% & set /a v4 = 6) else (goto :r44)
if %u4% == 9 if %f3% == 0 (set /a f3 = %p% & set /a v4 = 8) else (goto :r44)
set /a u4%p% = %u4%
set /a v4%p% = %v4%
if !v1%p%! GEQ 1 if !v1%p%! LEQ 3 if !v4%p%! GEQ 1 if !v4%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r4)
if !v1%p%! GEQ 4 if !v1%p%! LEQ 6 if !v4%p%! GEQ 4 if !v4%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r4)
if !v1%p%! GEQ 7 if !v1%p%! LEQ 9 if !v4%p%! GEQ 7 if !v4%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r4)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s4)
goto :r4
:s4
echo carre 4 ok

:r5
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %d4% (set /a d4 = 0)
if %p% == %d5% (set /a d5 = 0)
if %p% == %d6% (set /a d6 = 0)
if %p% == %e4% (set /a e4 = 0)
if %p% == %e5% (set /a e5 = 0)
if %p% == %e6% (set /a e6 = 0)
if %p% == %f4% (set /a f4 = 0)
if %p% == %f5% (set /a f5 = 0)
if %p% == %f6% (set /a f6 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r5)
:r55
set /a u5=%random% %% %n%+%x%
if %u5% == 1 if %d4% == 0 (set /a d4 = %p% & set /a v5 = 1) else (goto :r55)
if %u5% == 2 if %d5% == 0 (set /a d5 = %p% & set /a v5 = 4) else (goto :r55)
if %u5% == 3 if %d6% == 0 (set /a d6 = %p% & set /a v5 = 7) else (goto :r55)
if %u5% == 4 if %e4% == 0 (set /a e4 = %p% & set /a v5 = 2) else (goto :r55)
if %u5% == 5 if %e5% == 0 (set /a e5 = %p% & set /a v5 = 5) else (goto :r55)
if %u5% == 6 if %e6% == 0 (set /a e6 = %p% & set /a v5 = 8) else (goto :r55)
if %u5% == 7 if %f4% == 0 (set /a f4 = %p% & set /a v5 = 3) else (goto :r55)
if %u5% == 8 if %f5% == 0 (set /a f5 = %p% & set /a v5 = 6) else (goto :r55)
if %u5% == 9 if %f6% == 0 (set /a f6 = %p% & set /a v5 = 9) else (goto :r55)
set /a u5%p% = %u5%
set /a v5%p% = %v5%
if !u4%p%! GEQ 1 if !u4%p%! LEQ 3 if !u5%p%! GEQ 1 if !u5%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r5)
if !u4%p%! GEQ 4 if !u4%p%! LEQ 6 if !u5%p%! GEQ 4 if !u5%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r5)
if !u4%p%! GEQ 7 if !u4%p%! LEQ 9 if !u5%p%! GEQ 7 if !u5%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r5)
if !v2%p%! GEQ 1 if !v2%p%! LEQ 3 if !v5%p%! GEQ 1 if !v5%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r5)
if !v2%p%! GEQ 4 if !v2%p%! LEQ 6 if !v5%p%! GEQ 4 if !v5%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r5)
if !v2%p%! GEQ 7 if !v2%p%! LEQ 9 if !v5%p%! GEQ 7 if !v5%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r5)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s5)
goto :r5
:s5
echo carre 5 ok

:r6
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %d7% (set /a d7 = 0)
if %p% == %d8% (set /a d8 = 0)
if %p% == %d9% (set /a d9 = 0)
if %p% == %e7% (set /a e7 = 0)
if %p% == %e8% (set /a e8 = 0)
if %p% == %e9% (set /a e9 = 0)
if %p% == %f7% (set /a f7 = 0)
if %p% == %f8% (set /a f8 = 0)
if %p% == %f9% (set /a f9 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r6)
:r66
set /a u6=%random% %% %n%+%x%
if %u6% == 1 if %d7% == 0 (set /a d7 = %p% & set /a v6 = 1) else (goto :r66)
if %u6% == 2 if %d8% == 0 (set /a d8 = %p% & set /a v6 = 4) else (goto :r66)
if %u6% == 3 if %d9% == 0 (set /a d9 = %p% & set /a v6 = 7) else (goto :r66)
if %u6% == 4 if %e7% == 0 (set /a e7 = %p% & set /a v6 = 2) else (goto :r66)
if %u6% == 5 if %e8% == 0 (set /a e8 = %p% & set /a v6 = 5) else (goto :r66)
if %u6% == 6 if %e9% == 0 (set /a e9 = %p% & set /a v6 = 8) else (goto :r66)
if %u6% == 7 if %f7% == 0 (set /a f7 = %p% & set /a v6 = 3) else (goto :r66)
if %u6% == 8 if %f8% == 0 (set /a f8 = %p% & set /a v6 = 6) else (goto :r66)
if %u6% == 9 if %f9% == 0 (set /a f9 = %p% & set /a v6 = 9) else (goto :r66)
set /a u6%p% = %u6%
set /a v6%p% = %v6%
if !u4%p%! GEQ 1 if !u4%p%! LEQ 3 if !u6%p%! GEQ 1 if !u6%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r6)
if !u4%p%! GEQ 4 if !u4%p%! LEQ 6 if !u6%p%! GEQ 4 if !u6%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r6)
if !u4%p%! GEQ 7 if !u4%p%! LEQ 9 if !u6%p%! GEQ 7 if !u6%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r6)
if !u5%p%! GEQ 1 if !u5%p%! LEQ 3 if !u6%p%! GEQ 1 if !u6%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r6)
if !u5%p%! GEQ 4 if !u5%p%! LEQ 6 if !u6%p%! GEQ 4 if !u6%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r6)
if !u5%p%! GEQ 7 if !u5%p%! LEQ 9 if !u6%p%! GEQ 7 if !u6%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r6)
if !v3%p%! GEQ 1 if !v3%p%! LEQ 3 if !v6%p%! GEQ 1 if !v6%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r6)
if !v3%p%! GEQ 4 if !v3%p%! LEQ 6 if !v6%p%! GEQ 4 if !v6%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r6)
if !v3%p%! GEQ 7 if !v3%p%! LEQ 9 if !v6%p%! GEQ 7 if !v6%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r6)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s6)
goto :r6
:s6
echo carre 6 ok

:r7
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %g1% (set /a g1 = 0)
if %p% == %g2% (set /a g2 = 0)
if %p% == %g3% (set /a g3 = 0)
if %p% == %h1% (set /a h1 = 0)
if %p% == %h2% (set /a h2 = 0)
if %p% == %h3% (set /a h3 = 0)
if %p% == %i1% (set /a i1 = 0)
if %p% == %i2% (set /a i2 = 0)
if %p% == %i3% (set /a i3 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r7)
:r77
set /a u7=%random% %% %n%+%x%
if %u7% == 1 if %g1% == 0 (set /a g1 = %p% & set /a v7 = 1) else (goto :r77)
if %u7% == 2 if %g2% == 0 (set /a g2 = %p% & set /a v7 = 4) else (goto :r77)
if %u7% == 3 if %g3% == 0 (set /a g3 = %p% & set /a v7 = 7) else (goto :r77)
if %u7% == 4 if %h1% == 0 (set /a h1 = %p% & set /a v7 = 2) else (goto :r77)
if %u7% == 5 if %h2% == 0 (set /a h2 = %p% & set /a v7 = 5) else (goto :r77)
if %u7% == 6 if %h3% == 0 (set /a h3 = %p% & set /a v7 = 8) else (goto :r77)
if %u7% == 7 if %i1% == 0 (set /a i1 = %p% & set /a v7 = 3) else (goto :r77)
if %u7% == 8 if %i2% == 0 (set /a i2 = %p% & set /a v7 = 6) else (goto :r77)
if %u7% == 9 if %i3% == 0 (set /a i3 = %p% & set /a v7 = 9) else (goto :r77)
set /a u7%p% = %u7%
set /a v7%p% = %v7%
if !v1%p%! GEQ 1 if !v1%p%! LEQ 3 if !v7%p%! GEQ 1 if !v7%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r7)
if !v1%p%! GEQ 4 if !v1%p%! LEQ 6 if !v7%p%! GEQ 4 if !v7%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r7)
if !v1%p%! GEQ 7 if !v1%p%! LEQ 9 if !v7%p%! GEQ 7 if !v7%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r7)
if !v4%p%! GEQ 1 if !v4%p%! LEQ 3 if !v7%p%! GEQ 1 if !v7%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r7)
if !v4%p%! GEQ 4 if !v4%p%! LEQ 6 if !v7%p%! GEQ 4 if !v7%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r7)
if !v4%p%! GEQ 7 if !v4%p%! LEQ 9 if !v7%p%! GEQ 7 if !v7%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r7)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s7)
goto :r7
:s7
echo carre 7 ok

:r8
if %bloque% GEQ %nb% (set /a error = %lv% & set /a bloque = 0)
if %p% LEQ 0 (set /a p = 1)
if %p% == %g4% (set /a g4 = 0)
if %p% == %g5% (set /a g5 = 0)
if %p% == %g6% (set /a g6 = 0)
if %p% == %h4% (set /a h4 = 0)
if %p% == %h5% (set /a h5 = 0)
if %p% == %h6% (set /a h6 = 0)
if %p% == %i4% (set /a i4 = 0)
if %p% == %i5% (set /a i5 = 0)
if %p% == %i6% (set /a i6 = 0)
if %error% GEQ 1 (set /a p = %p% - 1 & set /a error = %error% - 1 & goto :r8)
:r88
set /a u8=%random% %% %n%+%x%
if %u8% == 1 if %g4% == 0 (set /a g4 = %p% & set /a v8 = 1) else (goto :r88)
if %u8% == 2 if %g5% == 0 (set /a g5 = %p% & set /a v8 = 4) else (goto :r88)
if %u8% == 3 if %g6% == 0 (set /a g6 = %p% & set /a v8 = 7) else (goto :r88)
if %u8% == 4 if %h4% == 0 (set /a h4 = %p% & set /a v8 = 2) else (goto :r88)
if %u8% == 5 if %h5% == 0 (set /a h5 = %p% & set /a v8 = 5) else (goto :r88)
if %u8% == 6 if %h6% == 0 (set /a h6 = %p% & set /a v8 = 8) else (goto :r88)
if %u8% == 7 if %i4% == 0 (set /a i4 = %p% & set /a v8 = 3) else (goto :r88)
if %u8% == 8 if %i5% == 0 (set /a i5 = %p% & set /a v8 = 6) else (goto :r88)
if %u8% == 9 if %i6% == 0 (set /a i6 = %p% & set /a v8 = 9) else (goto :r88)
set /a u8%p% = %u8%
set /a v8%p% = %v8%
if !u7%p%! GEQ 1 if !u7%p%! LEQ 3 if !u8%p%! GEQ 1 if !u8%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r8)
if !u7%p%! GEQ 4 if !u7%p%! LEQ 6 if !u8%p%! GEQ 4 if !u8%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r8)
if !u7%p%! GEQ 7 if !u7%p%! LEQ 9 if !u8%p%! GEQ 7 if !u8%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r8)
if !v2%p%! GEQ 1 if !v2%p%! LEQ 3 if !v8%p%! GEQ 1 if !v8%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r8)
if !v2%p%! GEQ 4 if !v2%p%! LEQ 6 if !v8%p%! GEQ 4 if !v8%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r8)
if !v2%p%! GEQ 7 if !v2%p%! LEQ 9 if !v8%p%! GEQ 7 if !v8%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r8)
if !v5%p%! GEQ 1 if !v5%p%! LEQ 3 if !v8%p%! GEQ 1 if !v8%p%! LEQ 3 (set /a bloque = %bloque% + 1 & goto :r8)
if !v5%p%! GEQ 4 if !v5%p%! LEQ 6 if !v8%p%! GEQ 4 if !v8%p%! LEQ 6 (set /a bloque = %bloque% + 1 & goto :r8)
if !v5%p%! GEQ 7 if !v5%p%! LEQ 9 if !v8%p%! GEQ 7 if !v8%p%! LEQ 9 (set /a bloque = %bloque% + 1 & goto :r8)
set /a bloque = 0
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & set /a bloque = 0 & goto :s8)
goto :r8
:s8
echo carre 8 ok

:r9
if %p% == %g7% (set /a g7 = 0)
if %p% == %g8% (set /a g8 = 0)
if %p% == %g9% (set /a g9 = 0)
if %p% == %h7% (set /a h7 = 0)
if %p% == %h8% (set /a h8 = 0)
if %p% == %h9% (set /a h9 = 0)
if %p% == %i7% (set /a i7 = 0)
if %p% == %i8% (set /a i8 = 0)
if %p% == %i9% (set /a i9 = 0)
:r99
set /a u9=%random% %% %n%+%x%
if %u9% == 1 if %g7% == 0 (set /a g7 = %p% & set /a v9 = 1) else (goto :r99)
if %u9% == 2 if %g8% == 0 (set /a g8 = %p% & set /a v9 = 4) else (goto :r99)
if %u9% == 3 if %g9% == 0 (set /a g9 = %p% & set /a v9 = 7) else (goto :r99)
if %u9% == 4 if %h7% == 0 (set /a h7 = %p% & set /a v9 = 2) else (goto :r99)
if %u9% == 5 if %h8% == 0 (set /a h8 = %p% & set /a v9 = 5) else (goto :r99)
if %u9% == 6 if %h9% == 0 (set /a h9 = %p% & set /a v9 = 8) else (goto :r99)
if %u9% == 7 if %i7% == 0 (set /a i7 = %p% & set /a v9 = 3) else (goto :r99)
if %u9% == 8 if %i8% == 0 (set /a i8 = %p% & set /a v9 = 6) else (goto :r99)
if %u9% == 9 if %i9% == 0 (set /a i9 = %p% & set /a v9 = 9) else (goto :r99)
set /a u9%p% = %u9%
set /a v9%p% = %v9%
if !u7%p%! GEQ 1 if !u7%p%! LEQ 3 if !u9%p%! GEQ 1 if !u9%p%! LEQ 3 (goto :r9)
if !u7%p%! GEQ 4 if !u7%p%! LEQ 6 if !u9%p%! GEQ 4 if !u9%p%! LEQ 6 (goto :r9)
if !u7%p%! GEQ 7 if !u7%p%! LEQ 9 if !u9%p%! GEQ 7 if !u9%p%! LEQ 9 (goto :r9)
if !u8%p%! GEQ 1 if !u8%p%! LEQ 3 if !u9%p%! GEQ 1 if !u9%p%! LEQ 3 (goto :r9)
if !u8%p%! GEQ 4 if !u8%p%! LEQ 6 if !u9%p%! GEQ 4 if !u9%p%! LEQ 6 (goto :r9)
if !u8%p%! GEQ 7 if !u8%p%! LEQ 9 if !u9%p%! GEQ 7 if !u9%p%! LEQ 9 (goto :r9)
if !v3%p%! GEQ 1 if !v3%p%! LEQ 3 if !v9%p%! GEQ 1 if !v9%p%! LEQ 3 (goto :r9)
if !v3%p%! GEQ 4 if !v3%p%! LEQ 6 if !v9%p%! GEQ 4 if !v9%p%! LEQ 6 (goto :r9)
if !v3%p%! GEQ 7 if !v3%p%! LEQ 9 if !v9%p%! GEQ 7 if !v9%p%! LEQ 9 (goto :r9)
if !v6%p%! GEQ 1 if !v6%p%! LEQ 3 if !v9%p%! GEQ 1 if !v9%p%! LEQ 3 (goto :r9)
if !v6%p%! GEQ 4 if !v6%p%! LEQ 6 if !v9%p%! GEQ 4 if !v9%p%! LEQ 6 (goto :r9)
if !v6%p%! GEQ 7 if !v6%p%! LEQ 9 if !v9%p%! GEQ 7 if !v9%p%! LEQ 9 (goto :r9)
set /a p = %p% + 1
if %p% GEQ 10 (set /a p = 1 & goto :s9)
goto :r9
:s9
echo carre 9 ok

echo 0000000000000000000000000000000000000
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %a1% * %a2% * %a3% 0 %a4% * %a5% * %a6% 0 %a7% * %a8% * %a9% 0  A   carres:  1 2 3
echo 0   *   *   0   *   *   0   *   *   0               4 5 6
echo 0***********0***********0***********0               7 8 9
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %b1% * %b2% * %b3% 0 %b4% * %b5% * %b6% 0 %b7% * %b8% * %b9% 0  B
echo 0   *   *   0   *   *   0   *   *   0
echo 0***********0***********0***********0
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %c1% * %c2% * %c3% 0 %c4% * %c5% * %c6% 0 %c7% * %c8% * %c9% 0  C
echo 0   *   *   0   *   *   0   *   *   0
echo 0000000000000000000000000000000000000
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %d1% * %d2% * %d3% 0 %d4% * %d5% * %d6% 0 %d7% * %d8% * %d9% 0  D
echo 0   *   *   0   *   *   0   *   *   0
echo 0***********0***********0***********0
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %e1% * %e2% * %e3% 0 %e4% * %e5% * %e6% 0 %e7% * %e8% * %e9% 0  E
echo 0   *   *   0   *   *   0   *   *   0
echo 0***********0***********0***********0
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %f1% * %f2% * %f3% 0 %f4% * %f5% * %f6% 0 %f7% * %f8% * %f9% 0  F
echo 0   *   *   0   *   *   0   *   *   0
echo 0000000000000000000000000000000000000
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %g1% * %g2% * %g3% 0 %g4% * %g5% * %g6% 0 %g7% * %g8% * %g9% 0  G
echo 0   *   *   0   *   *   0   *   *   0
echo 0***********0***********0***********0
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %h1% * %h2% * %h3% 0 %h4% * %h5% * %h6% 0 %h7% * %h8% * %h9% 0  H
echo 0   *   *   0   *   *   0   *   *   0
echo 0***********0***********************0
echo 0   *   *   0   *   *   0   *   *   0
echo 0 %i1% * %i2% * %i3% 0 %i4% * %i5% * %i6% 0 %i7% * %i8% * %i9% 0  I
echo 0   *   *   0   *   *   0   *   *   0
echo 0000000000000000000000000000000000000
pause
cls


je sais pas pourquoi il se bloque vers la fin



Dernière édition par mixel le Lun 10 Juil 2017 - 20:58; édité 5 fois
Répondre en citant
Message sudoku 
Salut Mr. Green
J'ai fait mon ptit code de mon côté, il manque plus que le backtracking et il génère une grille de sudoku aléatoire complète

Il n'est pas terminé mais je tiens à faire partager mon avancé ici Okay


Code:
@echo off
Setlocal EnableDelayedExpansion

call :makeSudoku
echo;Fin xD


pause
exit


:makeSudoku

  :: init global var
    set charset=123456789
   set charsettemp=!charset!
    set line=1
    set colonne=1
    set region=1
   set currentCase=1
 
  :loop
    cls
 
    set alreadyExist=FALSE
   set alreadyUse=FALSE
   set Error_blockage=FALSE
    set /a random_nb=!random!%%9+1
   
   
   for %%n in (!random_nb!) do (
   
     set charsettemp=!charsettemp:%%n=!
    
     rem echo;!charsettemp! : %%n
    
     rem On teste si le chiffre tiré au sort a déjà été utilisé ( On boucle )
     rem De plus, on teste si toutes les valeurs ont été utilisés ( On utilise le backtracking, pas encore intégré xD )
     if "!charsettemp!"=="=" (
       set Error_blockage=TRUE
     )
   
     rem On teste si la valeur est déjà présente sur une ligne, une colonne ou une région
     for %%l in (!line!) do (
       set temp=!sudoku_l_%%l!&set temptest=!temp:%%n=!
       if not "!temp!"=="" (
         if not "!temptest!"=="!temp!" set alreadyExist=TRUE
       )
      rem echo;LIGNE : if not "!temptest!"=="!temp!"
     )
     for %%c in (!colonne!) do (
       set temp=!sudoku_c_%%c!&set temptest=!temp:%%n=!
       if not "!temp!"=="" (
         if not "!temptest!"=="!temp!" set alreadyExist=TRUE
       )
      rem echo;COLONNE : if not "!temptest!"=="!temp!"
     )
     for %%r in (!region!) do (
       set temp=!sudoku_r_%%r!&set temptest=!temp:%%n=!
       if not "!temp!"=="" (
         if not "!temptest!"=="!temp!" set alreadyExist=TRUE
       )
      rem echo;REGION : if not "!temptest!"=="!temp!"
     )
   )
   
   echo;R‚gion : !region!, Ligne : !line!, Colonne : !colonne!
   
   rem On ajoute le chiffre tiré au sort selon les règles définit ci-dessus
   if "!Error_blockage!"=="FALSE" (
     if "!alreadyExist!"=="FALSE" (
      
      set charsettemp=!charset!
      
      rem Most important Code
      set /a temp_colonne=!currentCase!%%9
      set /a temp_region=!currentCase!%%3
      set /a temp_region2=!currentCase!%%27
      
      
      
      for %%s in (sudoku_r_!region!) do set %%s=!%%s!!random_nb!
      for %%s in (sudoku_l_!line!) do set %%s=!%%s!!random_nb!
      for %%s in (sudoku_c_!colonne!) do set %%s=!%%s!!random_nb!
      
      set sudoku_!line!_!colonne!=!random_nb!
      
      if "!line!"=="9" if "!colonne!"=="9" goto :endloop
      
      set /a colonne+=1
      
      if "!temp_region!"=="0" set /a region+=1
      if "!temp_region2!"=="0" set /a region+=3
      if "!temp_colonne!"=="0" ( set colonne=1&set /a line+=1&set /a region-=3 )
      
      set /a currentCase+=1
       
     ) else (
       echo;Chiffre !random_nb! deja utiliser
     )
   ) else (
     echo;Erreur : algo bloqu‚..
     echo;&call :drawSudoku
     pause
     exit
   )
   ::pause
  goto :loop
  :endloop


goto :eof
:drawSudoku
  for /l %%a in (1,1,9) do for /l %%b in (1,1,9) do set sudoku_%%a=!sudoku_%%a! !sudoku_%%a_%%b!
  for /l %%a in (1,1,9) do echo;!sudoku_%%a!
goto :eof





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message sudoku 
Salut c'est re-moi xD Mr. Green

Donc j'ai fini le code, il y a sûrement quelques améliorations à faire encore mais là déjà c'est pas mal Okay
Il génère un sudoku différent à chaque fois complet sans bug Mr. Green

edit : J'ai créé un topic pour : http://batch.xoo.it/t5825-PURE-BATCH-GENERATEUR-DE-SUDOKU.htm#p43944

Voici le code :


Code:
@echo off
Setlocal EnableDelayedExpansion
 
call :makeSudoku
call :drawSudoku
echo;Fin xD
 
 
pause
exit
 
 
:makeSudoku
rem Copyright © 2017 Flammrock, License MIT
  set charset=123456789
  set charsettemp=!charset!
  set line=1
  set colonne=1
  set region=1
  set currentCase=1
  set attempt=0
  set percent=0
  :loop
    set alreadyExist=FALSE
   set alreadyUse=FALSE
   set Error_blockage=FALSE
    set /a random_nb=!random!%%9+1
   for %%n in (!random_nb!) do (
     set charsettemp=!charsettemp:%%n=!
     if "!charsettemp!"=="=" set Error_blockage=TRUE
     for %%l in (!line!) do (
       set temp=!sudoku_l_%%l!&set temptest=!temp:%%n=!
       if not "!temp!"=="" if not "!temptest!"=="!temp!" set alreadyExist=TRUE
     )
     for %%c in (!colonne!) do (
       set temp=!sudoku_c_%%c!&set temptest=!temp:%%n=!
       if not "!temp!"=="" if not "!temptest!"=="!temp!" set alreadyExist=TRUE
     )
     for %%r in (!region!) do (
       set temp=!sudoku_r_%%r!&set temptest=!temp:%%n=!
       if not "!temp!"=="" if not "!temptest!"=="!temp!" set alreadyExist=TRUE
     )
   )
   if "!Error_blockage!"=="FALSE" (
     if "!alreadyExist!"=="FALSE" (
       call :onLoadingSudoku
      set charsettemp=!charset!
      set /a temp_colonne=!currentCase!%%9
      set /a temp_region=!currentCase!%%3
      set /a temp_region2=!currentCase!%%27
      for %%s in (sudoku_r_!region!) do set %%s=!%%s!!random_nb!
      for %%s in (sudoku_l_!line!) do set %%s=!%%s!!random_nb!
      for %%s in (sudoku_c_!colonne!) do set %%s=!%%s!!random_nb!
      set sudoku_!line!_!colonne!=!random_nb!
      if "!line!"=="9" if "!colonne!"=="9" ( set percent=100&call :onLoadingSudoku&goto :endloop )
      set /a colonne+=1
      if "!temp_region!"=="0" set /a region+=1
      if "!temp_region2!"=="0" set /a region+=3
      if "!temp_colonne!"=="0" ( set colonne=1&set /a line+=1&set /a region-=3&set attempt=0&set /a percent+=10 )
      set /a currentCase+=1
     )
   ) else (
     if !attempt! LSS 30 (
       call :RemoveLineSudoku
     ) else (
       call :resetSudoku
       goto :makeSudoku
     )
   )
  goto :loop
  :endloop
goto :eof
:drawSudoku
  for /l %%a in (1,1,9) do for /l %%b in (1,1,9) do set sudoku_%%a=
  for /l %%a in (1,1,9) do for /l %%b in (1,1,9) do (
    set /a temp=%%b%%3
   set sudoku_%%a=!sudoku_%%a! !sudoku_%%a_%%b!
   if "!temp!"=="0" set "sudoku_%%a=!sudoku_%%a!   "
  )
  for /l %%a in (1,1,9) do (
    set /a temp=%%a%%3
   echo;!sudoku_%%a:~1!
   if not "%%a"=="9" if "!temp!"=="0" echo;
  )
goto :eof
:onLoadingSudoku
  cls
  echo;G‚n‚ration du Sudoku : !percent!%%
  rem echo;R‚gion : !region!, Ligne : !line!, Colonne : !colonne!
goto :eof
:resetSudoku
  for /l %%e in (1,1,9) do (
    set sudoku_r_%%e=
    set sudoku_l_%%e=
    set sudoku_c_%%e=
  )
goto :eof
:RemoveLineSudoku
  set /a attempt+=1
  set region=1
  if !line! GTR 3 set region=4
  if !line! GTR 6 set region=7
  for /l %%c in (0,1,8) do (
    for %%l in (sudoku_l_!line!) do (
     set temp=!%%l:~%%c,1!
     if not "!temp!"=="" (
       set /a colonne=%%c+1
      set sudoku_!line!_!colonne!=
       for %%t in (!temp!) do (
        for %%s in (sudoku_c_!colonne!) do (
         set %%s=!%%s:%%t=!
        )
        for %%s in (sudoku_r_!region!) do (
         set %%s=!%%s:%%t=!
        )
      )
      set /a test=!colonne!%%3
       if "!test!"=="0" set /a region+=1
     )
    )
  )
  set colonne=1
  set region=1
  if !line! GTR 3 set region=4
  if !line! GTR 6 set region=7
  set sudoku_l_!line!=
  set charsettemp=!charset!
  set /a currentCase=!line!*9-8
goto :eof



Voici un des rendu possible :
Code:
2 8 1   6 9 4   3 7 5
7 4 3   8 5 2   6 1 9
9 6 5   1 7 3   8 4 2

6 5 8   2 1 7   9 3 4
1 9 4   5 3 6   7 2 8
3 7 2   4 8 9   1 5 6

5 1 6   3 2 8   4 9 7
8 3 7   9 4 5   2 6 1
4 2 9   7 6 1   5 8 3





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Message sudoku 


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