经改良后的方案:
@echo off&setlocal enabledelayedexpansion
:begin
for /l %%i in (1,1,9) do set "_%%i="
set "_5=5"&set "code=12346789"&set /a v=8,n=1
:again
if defined _%n% goto next
set /a a=%random%%%%v%
set "a=!code:~%a%,1!"
set /a m=n%%2,as=a%%2
if %m% equ %as% goto again
set "_%n%=%a%"&set /a b=10-a,c=10-n
set "code=!code:%a%=!"&set "code=!code:%b%=!"&set "_%c%=%b%"&set /a v-=2
:next
set /a n+=1&if !n! neq 5 goto again
set /a num1=_1+_2+_3,num2=_1+_4+_7
for %%i in (1 2) do if !num%%i! neq 15 goto begin
for /l %%i in (1,1,9) do set str=!str!!_%%i!
if defined _%str% (set "str="&goto begin) else (set "_%str%=%str%"&set /a num+=1)
cls&echo.&echo 第%num%种&echo.
set n=0&echo ┏━━┳━━┳━━┓
for /l %%i in (1,1,9) do (set /a n+=1
set /p=┃ !_%%i! <nul
if !n! equ 3 (
set "n=0"&set /p=┃<nul&echo.
if %%i neq 9 (
echo ┣━━╋━━╋━━┫
) else (
echo ┗━━┻━━┻━━┛
)))
if %num% neq 8 ping /n 3 127.1>nul&goto begin
pause>nul
Last edited by zw19750516 on 2008-7-17 at 05:43 PM ]