|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
|
2008-8-10 17:16 |
|
|
obsolete
初级用户
积分 192
发帖 72
注册 2005-7-31
状态 离线
|
『第
17 楼』:
先生成一个规则的矩阵,然后交替进行行列交换,应该可以达到随机效果
|
|
2008-8-10 20:23 |
|
|
obsolete
初级用户
积分 192
发帖 72
注册 2005-7-31
状态 离线
|
『第
18 楼』:
感觉很像之前d一个老大出的乱序产生0-99数字的二维版,相关的算法应该都可以借鉴
|
|
2008-8-10 20:32 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-8-10 22:20 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
20 楼』:
弄了一个7*7的……改成9*9 的弄到一半就就停了……
@echo off
setlocal enabledelayedexpansion
set a=0
for %%a in (1 2 3 4 5 6 7) do (set n%%a=%%a)
set /a n0=1,n8=2,n9=3
:a
set /a a+=1,b=0
md TheTest\hang%a%
:b
set /a b+=1
if not exist TheTest\Lie%b% (md TheTest\Lie%b%)
:b-1
set num=!n%random:~1,1%!
if exist TheTest\Hang%a%\!num! (goto :b-1)
if exist TheTest\Lie%b%\!num! (goto :b-1)
md TheTest\Hang%a%\!num!
md TheTest\Lie%b%\!num!
set h%a%=!num! !h%a%!
if %b% equ 7 (goto :b-end) else (goto :b)
:b-end
if %a% equ 7 (goto :end) else (goto :a)
:end
for /l %%a in (1,1,9) do echo,!h%%a!
pause>nul --------------……这代码不好……
[ Last edited by 523066680 on 2008-8-16 at 05:56 PM ]
|
综合型编程论坛
我的作品索引 |
|
2008-8-11 10:19 |
|
|
obsolete
初级用户
积分 192
发帖 72
注册 2005-7-31
状态 离线
|
『第
21 楼』:
想太简单了,撤回17-18楼,
看各位老大解题
|
|
2008-8-11 13:16 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
22 楼』:
为我欢呼吧,哈哈...
努力想啊想的,终于给我弄出来了,头发白了不少^_^,最主要是在出现死循环的时候如何重置.
乘着奥运的热风,让我满足一下一点点虚荣心吧.
Quote: |
- @echo off
- title 数字九宫格 Code By cn-dos moniuming
- Setlocal Enabledelayedexpansion
- for /l %%i in (1 1 9) do (set "bat=!bat! %%i")
- :begin
- echo.
- for /l %%i in (1 1 9) do (set "str%%i=%bat%")
- for /l %%a in (9 -1 1) do (call :loop1 %%a)
- echo.&pause&goto :begin
- :loop1
- if "%n%"=="9" (
- set "n=0"&echo %var%&set "var="
- for /l %%c in (1 1 9) do (set "%%c="&set "string%%c=")
- goto :eof
- )
- set /a "n+=1"
- for /l %%f in (1 1 9) do (
- if not defined string%%f (set "string%%f=!str%%f!")
- )
- :loop2
- set /a "ttl+=1"
- if "%ttl%"=="30" (
- set "ttl=0"&set "var="&set "n=0"
- for /l %%e in (1 1 9) do (set "%%e="&set "str%%e=!string%%e!")
- goto :loop1
- )
- set /a "mdl=%random%%%%1+1"
- for /f "tokens=%mdl%" %%d in ("!str%n%!") do (
- if defined %%d goto :loop2
- set "ttl=0"
- set "var=!var! %%d"
- set "%%d=dos"
- set "str%n%=!str%n%:%%d=!"
- )
- goto :loop1
moniuming发表于: 2008-08-11 13:31 |
|
|
|
2008-8-11 13:50 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-8-11 14:06 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
24 楼』:
Quote: | Originally posted by 523066680 at 2008-8-11 14:06:
哇 还是穷举的!强! |
|
这个可不是穷举的,呵呵,不过也差不多了,汗...
|
|
2008-8-11 14:20 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
25 楼』:
穷举吧。。那个ttl=30
但依然精彩,学习了!
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-11 14:26 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
26 楼』:
Quote: | Originally posted by pusofalse at 2008-8-11 14:26:
穷举吧。。那个ttl=30
但依然精彩,学习了! |
|
ttl=30是指每一位数字的计算次数限制在30次以内,如果超过的话就重置
其实取值范围是在已经出现的数字以外取的,并不是穷举
|
|
2008-8-11 14:30 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
|
2008-8-14 19:28 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
28 楼』:
精彩!!!
好东西
学习了......
|
|
2008-8-15 11:55 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-8-16 18:07 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
30 楼』:
精彩!!!
真高兴有那么精彩的代码,不过很可惜的是29楼的代码有规律可循,不能在九宫格游戏中运用,否则解题将不会有任何难度.
|
|
2008-8-17 13:43 |
|