魔方吧·中文魔方俱乐部

标题: 分珍珠 [打印本页]

作者: 狮子火柴    时间: 2004-8-15 13:20:36     标题: 分珍珠

规则:一共三行珍珠,每次你可以取走其中一行的任意颗珍珠,取完后点击“go”,最后一颗珍珠被谁拿到谁就输了!

以下是地址

http://flash.qianlong.com/409/2003-8-13/6@443298.htm


作者: 狮子火柴    时间: 2004-8-15 13:21:32

说难其实很简单说简单又挺难的

大家试试吧


作者: hw294    时间: 2004-8-18 11:02:20

提示: 作者被禁止或删除 内容自动屏蔽
作者: hw294    时间: 2004-8-18 11:12:51     标题: 搞一个魔方协会

提示: 作者被禁止或删除 内容自动屏蔽
作者: cube_master    时间: 2004-8-18 11:43:14

[em01][em01][em01]


作者: hw294    时间: 2004-8-18 16:00:38

提示: 作者被禁止或删除 内容自动屏蔽
作者: ggglgq    时间: 2004-8-20 08:57:09


“分珍珠”游戏就是著名的“火柴棍”游戏,我这里有一个
“火柴棍”的拓展的游戏,名曰《智娶华山》,难度较“火柴棍”
游戏大些,但原理一样!
楼主所提的“分珍珠”游戏,可以试用我改编的《追山妹》
游戏代替。《追山妹》游戏与“分珍珠”游戏的不同点为:
1.任意行,每行任意个“山洞”;
2.轮谁堵住最后一个山洞,谁“”,即(追)到了(山妹)。

《智娶华山》 Kvmme5Es.rar (37.87 KB, 下载次数: 169)



注明:因《智娶华山》与《追山妹》是用十年前的机器编程,
故《智娶华山》游戏程序中的声音有些不正常,望玩家谅解!!


[此贴子已经被作者于2005-11-25 9:22:26编辑过]



附件: VfYWixZ6.rar (2005-11-25 09:19:35, 45.63 KB) / 下载次数 124
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjQ1OHxiZmYyNTBmNHwxNzE0NzgyMzkwfDB8MA%3D%3D

附件: Kvmme5Es.rar (2005-11-25 09:19:36, 37.87 KB) / 下载次数 169
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjQ1OXwyMTAwNDUzZHwxNzE0NzgyMzkwfDB8MA%3D%3D
作者: hw294    时间: 2004-9-3 19:03:38

提示: 作者被禁止或删除 内容自动屏蔽
作者: 郭天聪    时间: 2005-1-20 08:52:58

ggglgq 老师,我想请问一下智娶华山是用什么写的啊?里面的音乐我好喜欢啊,真是神奇啊,怎么做到的。
作者: ggglgq    时间: 2005-1-21 09:00:52

/* 《智娶华山》是用 Turbo C 写的 */ /* 下面是它的音乐程序 */ /* 你可以把它复制到 Turbo C 中运行 */

int play[]={523,659,587,659,587,659,494,587,523,440,440,440,330,392,440,494,494,330,415,494,523,523,523};

music() { int musiclong,j; long stop;

musiclong=0; for (j=0;j<230;j++) { musiclong++; if (musiclong>22) musiclong=0; sound(play[musiclong]); stop=clock(); do{ }while (abs(clock()-stop)<3); nosound(); }

}

main() { music(); }


作者: rosebud    时间: 2005-3-8 09:00:53

以下是引用hw294在2004-8-18 11:12:51的发言:

┌┬┬士将┬┬┬┐ ├┼炮┼士┼┼┤ ├┼┼┼炮┼┼┼┤ 卒┼┼┼┼┼┼┼┤ ├┴┴┴┴┴┴┴┤ ├┬┬┬┬┬┬┬┤ 兵┼┼┼┼┼┼┼┤ ├┼┼┼炮┼┼┼┤ ├┼炮┼仕┼┼┤ └┴┴仕帅┴┴┴┘

发一个Java 象棋看看
作者: 乌木    时间: 2005-3-8 09:41:01

啊!这样的java图好,因故暂无法装java插件的我也能看能动.有些魔方的java图也能像rosebud的一样吗?(可能外行话了,请谅解.)
作者: rosebud    时间: 2005-3-8 10:14:04

再来个大的[em01][em01][em01]
作者: Aren4188    时间: 2005-7-28 16:50:12

很同意hw294的意见.

刚好这个棋局我也走过,很有异曲同工之妙.


作者: 清风细语    时间: 2005-8-1 17:16:43

请楼主把分珍珠的原理写出来,我们学习学习,谢![em17]
作者: xinru    时间: 2005-9-4 09:58:18

以下是引用rosebud在2005-3-8 10:14:04的发言:



再来个大的[em01][em01][em01]


我看可以在{数学、算术趣题}中发些象棋的题目让大家做做呀!!!

[此贴子已经被作者于2005-9-4 10:01:18编辑过]


作者: ggglgq    时间: 2005-11-25 09:31:44


加精了。


作者: simpley    时间: 2005-12-12 14:18:20

ggglgq先生:

您的<智取华山>游戏我怎么也通不过(只能玩到第5级),能不能请您讲一下详细的算法.谢谢.


作者: ggglgq    时间: 2005-12-12 20:29:12


simpley 先生的确很强!如果不知道《智娶华山》算法的奥妙,能
玩到第 5 级已经相当不错了。


如果您玩楼主的游戏(或者本人的“追山妹”游戏)没问题的话,您
应该知道她们的算法是“把每一行的特征值用“逻辑异或”加起来,如果
是 0 ,则先走方输,否则先走方赢。”
(注意:楼主的游戏要留意 1 1 1 、 1 1 及 1 的特殊情形。)

同样《智娶华山》的每个单行都可以计算出一个特征值,对于连续的
n 个洞来说,她们的特征值分别是:

0: 0
1: 1
2: 2
3: 3
4: 1
5: 4
6: 3
7: 2
8: 1
9: 4
10:2
11:6
12:4
13:1
14:2
15:7
16:1
17:4
18:3
19:2
20:1
21:4
22:6
......


胜负的判断标准同样是:把每一行的特征值用“逻辑异或”加起来,
如果是 0 ,则先走方输,否则先走方赢。


作者: ggglgq    时间: 2005-12-12 20:30:43


下面举例说明特征值的计算方法:
每一行都可以计算出一个非负整数的特征值。举例,对于不长于 6 个
的行来说:(表示方法: * 代表一个洞, 0 代表已经被填上的洞。 )

000000 0 000
*00000 1 001
0*0000 1 001
**0000 2 010
00*000 1 001
*0*000 0 000
0**000 2 010
***000 3 011
000*00 1 001
*00*00 0 000
0*0*00 0 000
**0*00 3 011
00**00 2 010
*0**00 3 011
0***00 3 011
****00 1 001
0000*0 1 001
*000*0 0 000
0*00*0 0 000
**00*0 3 011
00*0*0 0 000
*0*0*0 1 001
0**0*0 3 011
***0*0 2 010
000**0 2 010
*00**0 3 011
0*0**0 3 011
**0**0 0 000
00***0 3 011
*0***0 2 010
0****0 1 001
*****0 4 100
00000* 1 001
*0000* 0 000
0*000* 0 000
**000* 3 011
00*00* 0 000
*0*00* 1 001
0**00* 3 011
***00* 2 010
000*0* 0 000
*00*0* 1 001
0*0*0* 1 001
**0*0* 2 010
00**0* 3 011
*0**0* 2 010
0***0* 2 010
****0* 0 000
0000** 2 010
*000** 3 011
0*00** 3 011
**00** 0 000
00*0** 3 011
*0*0** 2 010
0**0** 0 000
***0** 1 001
000*** 3 011
*00*** 2 010
0*0*** 2 010
**0*** 1 001
00**** 1 001
*0**** 0 000
0***** 4 100
****** 3 011

这里,第一列是行的状态,第二列是特征值的十进制表示,第三列是
特征值的二进制表示。
整个游戏的特征值是每一行的特征值的逻辑异或的和。若其为 0,则
先走方输,反之则先走方胜。取胜的方法就是选择一种走法,使得走完后
的特征值为 0。这种走法是必然存在的。


法则一:如果一行被 0 分隔为若干个连续 * 号段,则该行的特征值是
这些 * 号子段的特征值的逻辑异或之和。例如,*0**0* 这个串,被 0 分隔
为三个子串:*,**,*,它们的特征值分别为 1,2,1,因此整个串的特征值
是 1^2^1 = 2。
法则二:连续 * 号的特征值计算方法。 列出按照游戏方法对这行进行
操作后所有可能的情况,这些操作后形成的串成为后继串。对每一个后继串
计算特征值,这些特征值形成了一个集合,不在这个集合中的最小非负整数
就是要求的特征值。 例如,** 这个串,可以按照游戏规则形成 *0,0*,00
三个后继串,他们的特征值分别为 1,1,0,因此不在这个集合中的非负的
最小整数是 2,就是 ** 的特征值。

由 法则一 和 法则二 可以计算出 0 ~ n 的特征值。


作者: simpley    时间: 2005-12-13 09:55:07

能否解释一下为什么5的特征值是4而不是1呢?
作者: ggglgq    时间: 2005-12-13 18:54:40


这个问题可以参考 20 楼,由 法则一 和 法则二 来求解 5 的
特征值。

对于不长于 5 个的行来说,简单举例:

***00 3 011
****0 1 001
***0* 2 010
**00* 3 011
**0** 0 000

(表示方法: * 代表一个洞, 0 代表已经被填上的洞。这里仅举
个别几种特例,其它情况均等价以上几种情况。其中蓝色特征值为 1

这里,第一列是行的状态,第二列是特征值的十进制表示,第三列
是特征值的二进制表示。


不在这个集合中的非负的最小整数是 4 ,因此它就是 ***** 的
特征值,即洞数为 5 的 特征值 是 4 ,而非 1、2、3。

同理,对于 20 楼,可以求解出洞数为 6 的特征值是 3 ,等等。



[此贴子已经被作者于2005-12-14 17:58:08编辑过]


作者: ggglgq    时间: 2005-12-14 19:16:55

同样《智娶华山》的每个单行都可以计算出一个特征值,对于连续的
n 个洞来说,她们的特征值分别是:

0: 0
1: 1
2: 2
3: 3
4: 1
5: 4
6: 3
7: 2
8: 1
9: 4
10:2
11:6
12:4
13:1
14:2
15:7
16:1
17:4
18:3
19:2
20:1
21:4
22:6
......


胜负的判断标准同样是:把每一行的特征值用“逻辑异或”加起来,
如果是 0 ,则先走方输,否则先走方赢。


作者: simpley    时间: 2005-12-15 12:23:37

明白了.谢谢.

不过上面的方法只适用于初级的吧,对中级和高级好象没有一个万全之策.电脑只有在"让"你的情况下才能取胜.比如:

3,3,1,1,1

这时该我填洞了,我填了单独的一个洞,剩下了:

3,3,1,1

下面电脑只须在3个洞中填上两个,剩下:

1,3,1,1

这样我就输定了.但电脑却停止了,直接判我胜.让人有胜之不武的遗憾.也就是说,在特征值不为0的情况下,无论各数是几,在初级模式下,你总能胜(这一点我已可以证明).但在中高级模式下,却不一定.

另外我想请教下程序中的算法,您是直接把每个特征值都事先计算好放入程序中呢(这样似乎程序好写一点),还是让程序在运行中自己去计算呢(这样好象更有挑战性,因为按您说的算法,不能直接用数学方法一步到位算出特征值)?

[此贴子已经被作者于2005-12-15 13:47:19编辑过]


作者: ggglgq    时间: 2005-12-15 19:00:19


《智娶华山》(“中”、“高”)级的含义是为了让玩家(“同”、“不同”)
于计算机的堵洞方式来堵洞!它只是为增加打关难度而特地设计的,是不能让玩家
任选石头的!当 所有横向相连山洞都小于4个,就是每个相连山洞都为 1 、2、3 时,
你就可以直接获胜娶走“华山”。(这些在游戏启动时的帮助信息里已经详细说明)

对于同一关,有不同的玩法,如下面几关的取胜方法都有两种:

*
**
***
****
取胜方法:
0 *
** **
*** 或 ***
**** *00*


又如:
*
**
***
******
取胜方法:
* *
** **
*0* 或 ***
****** **00**


再如:
*
**
***
*******
取胜方法:
* *
00 **
*** 或 ***
******* ***0***

等等等,在此就不一一例举了。

(“中”、“高”)级玩法的原理就是如此,如果只有一种玩法,程序会自动
变通的,以确保使您能够取胜的“石头”方式的,您不必为此操心。


作者: ggglgq    时间: 2005-12-15 19:01:51

以下是引用simpley在2005-12-15 12:23:37的发言:

另外我想请教下程序中的算法,您是直接把每个特征值都事先计算好放入程序中呢(这样似乎程序好写一点),还是让程序在运行中自己去计算呢(这样好象更有挑战性,因为按您说的算法,不能直接用数学方法一步到位算出特征值)?



我是采取直接把每个特征值都事先计算好放入程序中的。

当然可以让程序在运行中自己去计算。(比如 20 楼的方法)

并且我的算法是可以直接用数学方法一步到位算出特征值的,比如按照 22 楼
的计算方法,便可以事先简单计算出 1 ~ n 的所有特征值。


作者: simpley    时间: 2005-12-15 20:16:12

明白中高级的意思了,谢谢您的解答.

另外我说的用数学方法一步到位算出特征值的意思,指的是不能用f(n)这样的函数形式来计算,比如,要算出5的特征值,就必须在算出4的特征值的前提下来计算,而不可能直接代入用f(5)算出来.


作者: ggglgq    时间: 2005-12-17 12:06:22


欢迎大家来玩《分珍珠》、《追山妹》、《智娶华山》等游戏。

作者: real747    时间: 2007-1-17 09:01:34

[em01][em01][em01]
作者: bbshanwei    时间: 2008-5-11 13:55:39

这里好玩的东西还不少呢,下载去玩玩。
作者: killall    时间: 2008-5-24 01:24:34

哪有分珍珠的游戏呀,找不到
作者: flwb    时间: 2008-9-9 22:46:26

三堆珍珠先取必胜

[ 本帖最后由 flwb 于 2011-8-20 18:44 编辑 ]
作者: wzm4970    时间: 2008-11-19 10:08:13

也不难喔,,,
作者: xiaoguai1102    时间: 2008-12-30 17:31:46

我就是想看看那个智取华山的游戏
作者: 美景    时间: 2009-2-26 10:42:55

呵呵,支持!支持楼主!
作者: quancai    时间: 2011-3-28 12:37:43

哪有分珍珠的游戏呀?!看来只能玩智取华山啦!
作者: ggglgq    时间: 2018-3-19 18:37:34

智捉精灵.png
智捉精灵的玩法.png
 
升级《智娶华山》为《智捉精灵》。
 

附件: 智捉精灵的玩法.png (2018-3-19 18:37:10, 559.08 KB) / 下载次数 79
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjY0MjI5fDc2NjM1YmQ2fDE3MTQ3ODIzOTB8MHww

附件: 智捉精灵.png (2018-3-19 18:36:57, 784.01 KB) / 下载次数 78
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjY0MjI4fDFmZTNiNjEzfDE3MTQ3ODIzOTB8MHww

附件: 智捉精灵.rar (2018-3-19 18:36:32, 1.71 MB) / 下载次数 7
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjY0MjI3fDFiZDEzNDZmfDE3MTQ3ODIzOTB8MHww




欢迎光临 魔方吧·中文魔方俱乐部 (http://www.mf8-china.com/) Powered by Discuz! X2