中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决][难题]模拟输出数字九宫格
« [1] [2] [3] »
作者:
标题: [已解决][难题]模拟输出数字九宫格 上一主题 | 下一主题
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 ]

   此帖被 +8 点积分        点击查看详情   
评分人:【 moniuming 分数: +8  时间:2008-8-17 22:50




综合型编程论坛

我的作品索引
  
2008-8-17 21:46
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
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
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 35 楼』:  



  Quote:
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
状态 离线
『第 36 楼』:  如何用!

不知道如何用?

2008-9-8 16:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: