Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sudoku

22 views
Skip to first unread message

Mike Sanders

unread,
May 29, 2017, 10:16:32 PM5/29/17
to
Managed to cobble together a Sudoku script...


@echo off & title=Sudoku

:: Sudoku: Michael Sanders - 2017
:: https://busybox.hypermart.net/sudoku.html
::
:: 6^3 = 216 possible permutations...
::
:: levels of play, easy to difficult: 1-6

:seed

setlocal enabledelayedexpansion
set level=3&::<-------------
set m[1]=1 2 3 4 5 6 7 8 9
set m[2]=4 5 6 7 8 9 1 2 3
set m[3]=7 8 9 1 2 3 4 5 6
set m[4]=3 1 2 6 4 5 9 7 8
set m[5]=6 4 5 9 7 8 3 1 2
set m[6]=9 7 8 3 1 2 6 4 5
set m[7]=2 3 1 5 6 4 8 9 7
set m[8]=5 6 4 8 9 7 2 3 1
set m[9]=8 9 7 2 3 1 5 6 4

:main

for /l %%x in (1,1,9) do (
set k=0
set b=123456789
call :mask %%x
)
for /l %%x in (1,1,3) do (
echo.
if %%x equ 1 set s=123
if %%x equ 2 set s=456
if %%x equ 3 set s=789
set c=0
call :shuffle
)
if %0=="%~0" echo.&pause>nul|set/p =any key to exit...
endlocal & exit/b

:mask

if %level% lss 1 goto :eof
if %level% gtr 6 set level=6
set/a j=%random%%%(9-!k!)
set n=!b:~%j%,1!
set b=!b:%n%=!
set m[%1]=!m[%1]:%n%=.!
set/a k+=1
if !k! lss %level% goto :mask
goto :eof

:shuffle

set/a r=%random%%%(3-!c!)
set p=!s:~%r%,1!
set s=!s:%p%=!
set/a c+=1
echo.!m[%p%]!
if !c! lss 3 goto :shuffle

:eof


--
later on,
Mike

https://busybox.hypermart.net
0 new messages