|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『楼 主』:
[已解决][难题]模拟输出数字九宫格
模拟输出数字九宫格游戏(每行和每列的数字都不重复,而且是乱序),弄了三天都没弄出来,希望各位帮帮忙,就当是一个练习吧.
示例中只有1~6,希望能给出1~9的(能随机将每行中的几个数字变成空格就更好了).谢谢!!!
Quote: |
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个数字,如下:
8 7 5 2 9 1 6 4 3
2 9 6 4 3 8 5 1 7
3 4 1 7 6 5 2 8 9
6 5 9 1 7 3 4 2 8
4 2 7 9 8 6 1 3 5
1 3 8 6 5 2 7 9 4
9 8 4 5 1 7 3 6 2
7 1 2 3 4 9 8 5 6
5 6 3 8 2 4 9 7 1
7 6 3 2 1 5 9 8 4
9 5 2 6 8 4 3 1 7
8 4 1 3 9 7 6 5 2
2 1 5 4 6 9 8 7 3
4 9 6 8 7 3 1 2 5
1 3 8 5 4 2 7 9 6
3 2 7 9 5 8 4 6 1
6 8 4 7 2 1 5 3 9
5 7 9 1 3 6 2 4 8
4 6 9 1 3 2 8 5 7
5 1 3 7 4 8 2 9 6
6 2 8 5 7 9 1 4 3
9 4 5 3 2 7 6 1 8
8 7 6 2 1 5 4 3 9
1 3 2 4 8 6 9 7 5
3 8 7 6 9 4 5 2 1
7 5 4 9 6 1 3 8 2
2 9 1 8 5 3 7 6 4 2楼和5楼的是有规律的,不符合要求.
比较好的代码有:
22楼本人的代码(效率较低)
27楼terse的代码(效率较低)
29楼52306668的代码(效率较高,有规律)
31楼52306668的代码(效率较高,感觉最满意)
[ Last edited by moniuming on 2008-8-18 at 12:02 PM ]
|
|
2008-8-9 15:50 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
2 楼』:
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
这样可以吗?
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-9 16:44 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
3 楼』:
能随机将每行中的几个数字变成空格就更好了
这是什么意思。。。
ps:要达到楼主其他的要求不难。。
|
批处理之家新域名:www.bathome.net |
|
2008-8-9 16:55 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
4 楼』:
每次都生成不一样的,要随机生成,如下(把1做成2的效果):
1:
Quote: | 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:
Quote: | 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 ]
|
|
2008-8-9 17:04 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
5 楼』:
@echo off&setlocal enabledelayedexpansion
set "code= 9 1 2 3 4 5 6 7 8"
for /l %%i in (1,1,9) do (
set "a=!code:~1,1!"
set "code=!code:~2! !a!"
echo !code:~1!
)
pause>nul ps:这是不是每行每列都不一样啊
[ Last edited by bat-zw on 2008-8-9 at 05:09 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-8-9 17:08 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
6 楼』:
随机乱序啊。每个数字都用到了,如果用不到那才难。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-9 17:15 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
7 楼』:
数独???
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-8-9 17:34 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by slore at 2008-8-9 17:34:
数独??? |
|
是啊,因为数独是日本人的叫法,我非常讨厌日本人,所以就用中国人的叫法啦
|
|
2008-8-9 17:38 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
9 楼』:
这样就行了
_ _ 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
|
|
2008-8-9 17:48 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
10 楼』:
要求已在顶楼更新
继续期待中......
|
|
2008-8-10 09:45 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
11 楼』:
你那几个样本是怎样生成的?~^_^
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-10 12:36 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
12 楼』:
理论上来说是可以的。但成功率。。。。。9*9没成功过。
@echo off&setlocal enabledelayedexpansion
for /l %%a in (0 1 6) do set var%%a=123456
set/a s=6,z=s
:loop
:: set m=%random%
set/a n+=1,m=%random%%%%s%
set a=!var%n%:~%m%,1!
if defined #%a% set/a n-=1&goto loop
set #%a%=abc
set var%n%=!var%n%:%a%=!
set "str=%str%%a% "
if %n% neq 6 goto loop
echo %str%
for /f "delims==" %%a in ('set #') do set "%%a="
set "str="
set/a s-=1
set/a n=0
if %s% neq 0 goto loop
pause
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-10 12:50 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by pusofalse at 2008-8-10 12:36:
你那几个样本是怎样生成的?~^_^ |
|
哈哈,有一个游戏软件(exel格式)
12楼的代码在输出2行后就没了,但内存还是100%,
附件
1: 九宫格数字游戏.rar (2008-8-10 13:16, 45.53 K, 下载附件所需积分 1 点
,下载次数: 5)
|
|
2008-8-10 13:16 |
|
|
pusofalse
银牌会员
积分 1604
发帖 646
注册 2008-4-13
状态 离线
|
『第
14 楼』:
我测试输出5个,成功率就已经非常低了,就更别说5个以上了。
就连3个时也有出错。 正在研究新方案。这类的题好复杂啊,看来我昨天太简单化了。
|
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^ |
|
2008-8-10 13:33 |
|
|
flyinspace
银牌会员
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第
15 楼』:
呵呵这样的题目要有算法才好做。
要不好麻烦的。我情愿用c去写出来。还会简单一些。
|
知,不觉多。不知,乃求知 |
|
2008-8-10 14:00 |
|