|
523066680
银牌会员
     SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
   『第
31 楼』:
哈哈,坚持把这个思路完善,横竖乱序后,再随机调换数字: @echo off
title made by cn-dos and bathome - 523066680
setlocal enabledelayedexpansion
:start
set h1=123456789
set h2=234567891
set h3=345678912
set h4=456789123
set h5=567891234
set h6=678912345
set h7=789123456
set h8=891234567
set h9=912345678
for /l %%a in (0,1,9) do (
set Ex%%a=
set Ex2%%a=
set hang%%a=
)
set /a a=0,b=0,c=0
::a ---把列打乱
:a
set /a a+=1
:a-1
set n=%random:~-1%
if %n% equ 9 set n=8
if not defined Ex%n% (
for /l %%a in (1,1,9) do (call,set hang%%a=!hang%%a! %%h%%a:~!n!,1%%)
) else (goto :a-1)
set Ex%n%=ex
if %a% lss 9 goto :a
::b ---把行打乱
:b
set /a b+=1
:b-1
set n=%random:~-1%
if %n% equ 0 set n=9
if not defined Ex2%n% (set h%b%=!hang%n%!) else (goto :b-1)
set Ex2%n%=ex
if %b% lss 9 goto :b
::c ---随机调换数字
:c
set /a c+=1
:c-1
set n1=!random:~-1!
set n2=!random:~-1!
if %n1% equ %n2% goto :c-1
if %n1% equ 0 set n1=1
if %n2% equ 0 set n2=9
for /l %%a in (1,1,9) do (
set h%%a=!h%%a:%n1%=n!
set h%%a=!h%%a:%n2%=%n1%!
set h%%a=!h%%a:n=%n2%!
)
if %c% lss 8 goto :c
for /l %%a in (1,1,9) do echo !h%%a!
pause
goto :start
[ Last edited by 523066680 on 2008-8-18 at 07:42 AM ]
|

|
|
2008-8-17 21:46 |
|
|
moniuming
银牌会员
     永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
32 楼』:
31楼,好样的!!!
哈哈,看来要用31楼的代码来做数字九宫格游戏的主体了...
|
|
2008-8-17 23:18 |
|
|
flyinspace
银牌会员
    
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第
33 楼』:
这个?有解决么?
没有发现啊 ?
5 6 4 7 3 9 8 2 1
1 4 2 9 5 8 7 6 3
4 9 8 5 6 1 3 7 2
3 2 6 8 1 7 9 4 5
2 8 7 1 4 3 5 9 6
6 7 9 3 2 5 1 8 4
7 3 5 2 8 6 4 1 9
9 5 1 6 7 4 2 3 8
8 1 3 4 9 2 6 5 7
根本没有解决哦。。
看到了蓝色的字没?不符合条件的。
[ Last edited by flyinspace on 2008-8-18 at 02:19 AM ]
|

知,不觉多。不知,乃求知 |
|
2008-8-18 02:18 |
|
|
523066680
银牌会员
     SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
34 楼』:
真麻烦呐……对于这个我还是不了解……不干了……
额 好像这种情况是挺多的,看看能不能改改咯……
现在已经将31楼调换数字次数改成8次.试试
多少还是出现了多处类似的情况……&麻烦呐
5 6 8 9 3 7 2 1 4
6 1 3 4 5 2 8 9 7
3 5 2 1 8 4 7 6 9
4 7 1 8 9 5 6 2 3
7 2 9 3 4 6 1 8 5
2 8 4 5 7 1 9 3 6
8 3 7 6 2 9 4 5 1
9 4 6 2 1 3 5 7 8
1 9 5 7 6 8 3 4 2
刚刚观察,moun的生成结果,偶然的也会出现类似情况啊
5 7 2 3 9 6 4 8 1
2 9 1 6 5 3 7 4 8
7 6 8 5 4 1 2 3 9
1 4 6 8 7 9 5 2 3
6 3 4 2 8 7 1 9 5
8 5 9 1 6 4 3 7 2
3 8 7 9 2 5 6 1 4
4 2 3 7 1 8 9 5 6
9 1 5 4 3 2 8 6 7
细心看了n个代码的结果,应该说 这个情况不在少数。
我把31楼关键部分改了下。稍微减少了相邻相同的现象
(才发现原来的时候 好多地方都是相邻相等啊)
[ Last edited by 523066680 on 2008-8-18 at 08:23 AM ]
|

|
|
2008-8-18 06:24 |
|
|
moniuming
银牌会员
     永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
35 楼』:
Originally posted by flyinspace at 2008-8-18 02:18:
这个?有解决么?
没有发现啊 ?
5 6 4 7 3 9 8 2 1
1 4 2 9 5 8 7 6 3
4[/c ... 个人认为要排除这种情况是非常困难的,13楼的游戏软件也会出现这种情况呀...
|
|
2008-8-18 11:54 |
|
|
ziyouren18
新手上路

积分 2
发帖 1
注册 2008-9-8
状态 离线
|
|
2008-9-8 16:51 |
|