中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 16:59
47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决][难题]模拟输出数字九宫格
可打印版本  3,917 / 35
第1楼 moniuming 发表于 2008-08-09 15:50
银牌会员 发帖 574 积分 1,335 来自 广西
[已解决][难题]模拟输出数字九宫格
模拟输出数字九宫格游戏(每行和每列的数字都不重复,而且是乱序),弄了三天都没弄出来,希望各位帮帮忙,就当是一个练习吧.
示例中只有1~6,希望能给出1~9的(能随机将每行中的几个数字变成空格就更好了).谢谢!!!

1 2 5 3 6 4
5 4 3 1 2 6
3 5 2 6 4 1
2 3 6 4 1 5
6 1 4 2 5 3
4 6 1 5 3 2


由于昨天没把问题描述清楚,现在再重新梳理一下,就是乱序生成9*9的数列,每行和每列都必须包含1~9这9个数字,如下:





2楼和5楼的是有规律的,不符合要求.

比较好的代码有:
22楼本人的代码(效率较低)
27楼terse的代码(效率较低)
29楼52306668的代码(效率较高,有规律)
31楼52306668的代码(效率较高,感觉最满意)


[ Last edited by moniuming on 2008-8-18 at 12:02 PM ]
第2楼 pusofalse 发表于 2008-08-09 16:44
银牌会员 发帖 646 积分 1,604
1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5

这样可以吗?
第3楼 bat-zw 发表于 2008-08-09 16:55
金牌会员 发帖 1,276 积分 3,105
能随机将每行中的几个数字变成空格就更好了
这是什么意思。。。
ps:要达到楼主其他的要求不难。。
第4楼 moniuming 发表于 2008-08-09 17:04
银牌会员 发帖 574 积分 1,335 来自 广西
每次都生成不一样的,要随机生成,如下(把1做成2的效果):
1:

3 5 8 4 7 9 1 6 2
2 6 4 3 1 5 8 9 7
9 1 7 8 6 2 4 5 3
1 4 5 2 3 7 6 8 9
8 2 6 5 9 1 7 3 4
7 9 3 6 8 4 5 2 1
4 8 9 7 2 6 3 1 5
6 7 2 1 5 3 9 4 8
5 3 1 9 4 8 2 7 6

2:

3 _ _ _ 7 9 _ 6 2
2 _ _ _ 1 _ 8 9 7
_ 1 7 8 _ _ 4 5 3
_ 4 _ _ 3 7 _ _ _
_ 2 _ 5 _ 1 7 3 4
7 _ 3 _ 8 _ _ 2 1
4 _ 9 _ 2 6 3 _ _
6 7 _ _ 5 _ 9 _ 8
_ _ _ 9 4 8 2 7 _


[ Last edited by moniuming on 2008-8-10 at 09:29 AM ]
第5楼 bat-zw 发表于 2008-08-09 17:08
金牌会员 发帖 1,276 积分 3,105

ps:这是不是每行每列都不一样啊

[ Last edited by bat-zw on 2008-8-9 at 05:09 PM ]
第6楼 pusofalse 发表于 2008-08-09 17:15
银牌会员 发帖 646 积分 1,604
随机乱序啊。每个数字都用到了,如果用不到那才难。
第7楼 slore 发表于 2008-08-09 17:34
铂金会员 发帖 2,478 积分 5,212
数独???
第8楼 moniuming 发表于 2008-08-09 17:38
银牌会员 发帖 574 积分 1,335 来自 广西
Originally posted by slore at 2008-8-9 17:34:
数独???

是啊,因为数独是日本人的叫法,我非常讨厌日本人,所以就用中国人的叫法啦
第9楼 moniuming 发表于 2008-08-09 17:48
银牌会员 发帖 574 积分 1,335 来自 广西
这样就行了
_ _ 5 2 9 _ 6 _ _
_ 9 _ _ _ 8 _ 1 7
3 4 _ _ 6 _ 2 _ _
_ _ 9 1 7 3 4 _ _
4 _ _ _ 8 _ _ _ 5
1 _ 8 _ _ _ 7 9 _
_ _ 4 5 _ _ 3 _ _
7 _ 2 3 _ _ _ 5 6
_ 6 _ 8 2 _ _ _ 1
第10楼 moniuming 发表于 2008-08-10 09:45
银牌会员 发帖 574 积分 1,335 来自 广西
要求已在顶楼更新
继续期待中......
第11楼 pusofalse 发表于 2008-08-10 12:36
银牌会员 发帖 646 积分 1,604
你那几个样本是怎样生成的?~^_^
第12楼 pusofalse 发表于 2008-08-10 12:50
银牌会员 发帖 646 积分 1,604
理论上来说是可以的。但成功率。。。。。9*9没成功过。
第13楼 moniuming 发表于 2008-08-10 13:16
银牌会员 发帖 574 积分 1,335 来自 广西
Originally posted by pusofalse at 2008-8-10 12:36:
你那几个样本是怎样生成的?~^_^

哈哈,有一个游戏软件(exel格式)

12楼的代码在输出2行后就没了,但内存还是100%,

附件
九宫格数字游戏.rar (45.53 KiB)
第14楼 pusofalse 发表于 2008-08-10 13:33
银牌会员 发帖 646 积分 1,604
我测试输出5个,成功率就已经非常低了,就更别说5个以上了。
就连3个时也有出错。 正在研究新方案。这类的题好复杂啊,看来我昨天太简单化了。
第15楼 flyinspace 发表于 2008-08-10 14:00
银牌会员 发帖 517 积分 1,206
呵呵这样的题目要有算法才好做。
要不好麻烦的。我情愿用c去写出来。还会简单一些。
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023