tryhi 发表于 2012-5-13 02:24:43

本帖最后由 tryhi 于 2012-5-13 03:15 编辑

自己写了一下,被绕晕了,代码很罗嗦,很拖拉,纯粹是找抽型。。。。
**** Hidden Message *****

Duvet 发表于 2012-5-13 02:44:15

本帖最后由 Duvet 于 2012-5-13 04:49 编辑

樓主的方法讓我學習了,美中不足的是答案不夠嚴謹
例如有些例外情況,三次都選一竟會有答案

回复 14# 3mile
學習了,依次選擇1,2,1看看

happytc 发表于 2012-5-13 10:29:29

**** 本内容被作者隐藏 ****


先申明我不是来晒代码的,我要的是你的思路和代码(不要求界面,只要能实 ...
水木子 发表于 2012-5-12 20:28 http://www.autoitx.com/images/common/back.gif

本人笨了点,很可能是根本没有理解水版的题意,所以觉得这好象不需要啥算法呀:

第一次选一排数之后,就只剩下7个数字了(去掉了14个数)
第二次选一排数字(前面剩下的7个数分到三排,以 2   2   3分),再次选了后就剩下2个数或3个数
第三次分配时若有3个数时就一排分一个,若只有两个数,就随便放在其中的两排,唯一性就出来了嘛


所以觉得没有什么搞头呀

3mile 发表于 2012-5-13 10:46:46

回复 17# Duvet
嗯,没有容错的代码.
仅加入容错代码:
**** Hidden Message *****

jwwlchen 发表于 2012-5-13 11:33:13

先看看你的代码

jwwlchen 发表于 2012-5-13 11:33:17

先看看你的代码

ooxxgod 发表于 2012-5-13 12:04:00

看看隐藏的内容

1007236046 发表于 2012-5-13 13:55:39

本帖最后由 1007236046 于 2012-5-13 19:19 编辑

**** Hidden Message *****
不会用楼主的static控件,用的button来显示数组的

MicroBlue 发表于 2012-5-13 15:24:45

没时间写代码了,写一下思路吧:


第一次排序没有任何讲究,随机排三列。当用户选着其中一行的时候,其实也就是排除了 7x2 = 14 个数字,
也就是说用户的选择是剩余的21-14=7个中的一个。我们姑且用 a、b、c、d、e、f、g 这七个数来代替。

第二次排序要有顺序,必须把七个数字以 331/223 的方式分开,也就是:

A:                B:
abcxxxx或   abxxxxx
defxxxx      cdxxxxx
gxxxxxx      efgxxxx


如果是A这种分法,那么当用户选择第1、2行的时候,那么下次将abc、或def这两行的数字分开即可。 如果选择了第三行,很明显,那g就是唯一的结果。
如果是B这种分发,相同道理。

不知道有没有说清。。。请版主给一个更好的方式,学习一下这个算法。

水木子 发表于 2012-5-13 15:53:37

本帖最后由 水木子 于 2012-5-13 15:59 编辑

回复 24# MicroBlue

谈谈我的思路!
我代码里面没有什么排除之类意思,而是在将数组元素移动位置。
我们姑且将数组元素想象成扑克牌,而数组每个元素就是一张牌。
再来看看下面这代码,为什么要这样写呢?还记得那个扑克牌魔术是怎么玩的吗?
先将牌打开让观众记忆,观众记号后你开始发牌,第一次可以随意发牌没有顺序,发牌分成3组A/B/C,每组7张共21张,让观众说出他记忆的你张牌的在哪组,假设在A组,那么我们将3组牌收起来,注意这里就是关键了,收起来的时候牌需要有顺序的放,观众指定的那组牌必须放在中间,也就是说收起来的牌顺序是 B/A/C 注意A组在中间,然后再发牌再将牌发成3组每组7张,这些发牌就不能乱发了,也是有序的,必须3组一个一张的来也就是 ABC ABC ABC …… 这样一张一张的发,新得到3组,如此反复3次,最后观众所记忆的这张牌就会被移动他所选那组的中间位置,比如第3次他选了B组,那么他所记忆的牌就是B组第4张,这也就是所以我代码中最后得出结果的时候是在取位置。

说得有点多了,不知道数清楚没有,至于到底为什么会这样,大家可以那扑克牌来试试就知道了。


如下代码就是为了将观众所选组放在牌组的中间,以便下一次发牌。
         Case $Label1
                        _SetData($Label2, $Label1, $Label3)                     
                Case $Label2
                        _SetData($Label1, $Label2, $Label3)
                Case $Label3
                        _SetData($Label1, $Label3, $Label2)

MicroBlue 发表于 2012-5-13 16:21:26

回复 25# 水木子


    哈哈,看来思路是不一样啊,真是一个人一个思路啊。咱们思路不一样,但本质应该是一样的吧。你结合了扑克牌游戏,这样思考起来更形象,我那是纯运算。好久没思考问题了,还是要谢谢你的游戏。

ye5022 发表于 2012-5-13 22:15:21

看一看怎么实现先!

masterpcc 发表于 2012-5-14 06:32:17

看看隐藏的内容

lxzan 发表于 2012-5-14 08:19:46

很有意思,看看代码.

shqf 发表于 2012-5-14 08:46:09

有点儿意思,让我瞧睢
页: 1 [2] 3 4 5 6 7
查看完整版本: 数字游戏,猜你所选择的是哪个数字。