注册 | 登录

游侠NETSHOW论坛





查看: 17801|回复: 26
打印 上一主题 下一主题

关于成功率判定的方法跟S/L原理的入门研究 [复制链接]

帖子
36
精华
0
积分
28
金钱
329
荣誉
1
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2008-2-2 07:13:02 |只看该作者 |倒序浏览
首先,在下不是谁的马甲,长期游侠潜水.前两天看到一篇说到战法成功率的帖子,才想到注册了个马甲说两句,没想到要等24小时...言归正传吧.我就简单的说一下成功率是如何判定的.

要搞清楚这个问题,首先得说到一个很挺流行的词语"伪随机"."伪随机"只是一种称呼而已,他指的是311里面的随机是建立在相对的基础上的随机.要解释这个伪随机,我们可以引入一个"乱数"的概念.所有火焰纹章的爱好者对这个词语应该不会陌生,下面我就用一个简单的例子来解释"乱数",说明战法是否成功是如何判定的.

有些朋友提到的"顺序"决定战法是否成功,其实就已经很模糊的指出了"乱数"的存在.

情景:我用得是190孙坚,外面三队人,分别是周瑜,孙策,小乔.包围了刘表的一只队伍"匪兵甲".

好了,假设在孙坚的turn一开始的瞬间,随机产生了,"31,64,44,58,24,73,96,88,57,22,5..."一组有顺序的数字,这些数字就是我所说的"乱数",现在我来讲解他们是怎么工作的.

首先,玩家的第一个操作是要用周瑜对匪兵甲使用火矢战法.

第一步判定,假设火矢战法的成功率是90%.90>31,判定战法成功,周瑜能够使用战法.

第二步判定,假设周瑜战法成功时的暴击率是20%,20<64,判定暴击失败,周瑜不能暴击,只能是一般战法.

第三步判定,假设火矢战法在成功并未暴击的情况下点火的几率是50%,50>44,判定战法能够点火.

第四步判定.假设火矢战法在成功点火时的致伤几率是10%.10<58,判定这次战法不能让匪兵甲受伤.

第五步判定,假设孙策临近匪兵甲辅助攻击的概率是50%.50>24.判定辅助攻击成功,孙策对匪兵甲进行支援周瑜的辅助攻击.

第六步判定,假设小乔临近匪兵甲辅助攻击的概率是40%.40<73,判定辅助攻击失败,小乔不能对匪兵甲进行支援周瑜的辅助攻击.

到现在为止,一个周火神对匪兵甲发动火矢的操作就经过了六次判定,并消耗了六个"乱数".造成的结果是,周火神对匪兵甲发动火矢成功,非暴击,成功点火,匪兵甲不受伤,孙策进行援助攻击.小乔不动.

现在进行第二次的操作,操作孙策对匪兵甲进行单挑.前面在"31,64,44,58,24,73,96,88,57,22,5,37..."这一组"乱数"中,已经消耗了前面六个,剩下的"乱数"是"96,88,57,22,5..."玩家比较无耻,在单挑前面进行的save.开始单挑.

第一次,假设孙策单挑匪兵甲的成功率是32%.32<96.判定单挑失败,匪兵甲拒绝单挑.

第二次,显然匪兵甲拒绝单挑不是无耻小玩家所需要的效果,于是他load了一下.这一次在城里建造了一个黑市,消耗了"96"这个乱数.然后单挑.32<88.判定单挑失败,匪兵甲任然拒绝单挑.

第三次,玩家load.这次先造了一个黑市消耗掉了"96"这个乱数,再造一个黑市消耗掉了"88"这个乱数.单挑.32<57,判定单挑失败,匪兵甲依然拒绝单挑.

第四次,玩家百折不挠,发誓要生擒匪兵甲于马下,于是乎再次load.这次玩家一口气连续建造了三个黑市,消耗掉了"96,88,57"这三个乱数.单挑.32>22,判定单挑成功,匪兵甲终于接受了单挑.第二次判定,假设孙策秒杀匪兵甲的概率是20%.20>5,判定秒杀成功.孙策秒杀匪兵甲,第三步判定,假设孙策俘虏匪兵甲的概率是80%.80>37,判定俘虏成功,孙策俘虏了匪兵甲.

这一次的操作依次是,建立三个黑市,让孙策单挑匪兵甲,匪兵甲接受,孙策秒杀匪兵甲,孙策俘虏匪兵甲...无耻小玩家相当满意这个情况....

举了这个例子,各位兄弟应该对"乱数"跟各种成功率的判定有了概念.注意...........我下面所说的相当重要...............

在下举这个例子的目的是为了解释什么是"乱数",跟说明各种成功率判定的模式.实际游戏中,并不一定采用的是我所YY的判定顺序,每次判定也不一定只消耗1个乱数,各种判定所消耗的乱数数量也不一定相同.我说得简单,只是为了让兄弟们能更好的理解"乱数"这个概念.乱数的形成也并不一定是在每个回合的开始,这样有很多现象都不能清楚的解释,我个人认为是在游戏一开始就形成了无数个有序的乱数,或者是每个月或者每年用一组有序乱数.但乱数这个东西的确是存在的,而且大多数SLG游戏的有关成功率的判定采用的都是"乱数"这种模式.我看了一下本吧精华中S/L教程那篇文章,其中作者所提出的用"评定""搜索"指令来改变成功率的方法,其本质上就是消耗乱数,不过各种指令消耗的乱数数量并不相同,评定所消耗的乱数应该更多一点.但这些大家没必要去深究,会运用就行了.

上面解释了"乱数",现在我说说我所理解的"伪随机".个人认为"伪随机"其实并不准确,它应该叫做"半随机",即,在乱数的形成上,是一次性就随机形成而不可更改了的,而玩家的操作却是可以更改的,这样就可以用可更改的行动去适合不可更改的乱数.利用S/L使玩家利于不败之地..这种乱数的随机是一种可以用s/l来预测的随机..即称为"伪随机".

写了那么多..希望对各位311的兄弟们有所帮助.
已有 1 人评分金钱 收起 理由
baimao3721 + 30 + 2 原创内容,值得鼓励!

总评分: 金钱 + 30  + 2   查看全部评分

使用道具 举报

帖子
378
精华
0
积分
189
金钱
531
荣誉
0
人气
0
评议
0
沙发
发表于 2008-2-2 07:35:08 |只看该作者
玩火焰纹章的确是有乱数值的。。。。。。。。。

使用道具 举报

帖子
935
精华
0
积分
468
金钱
984
荣誉
0
人气
0
评议
0
板凳
发表于 2008-2-2 07:40:09 |只看该作者
不过乱数的消耗仍然是盲目的,还是需要不断的sl
如果能有一个一目了然的乱数表就好了,某年某月某旬,某军乱数如下

使用道具 举报

魏 儒林校尉

帖子
1024
精华
0
积分
543
金钱
3957
荣誉
3
人气
1
评议
0
地板
发表于 2008-2-2 11:22:12 |只看该作者
VAN修改器可以察看乱数值~~~~~~~~~~~~~~~~~~~

使用道具 举报

帖子
2483
精华
0
积分
1272
金钱
2890
荣誉
3
人气
0
评议
0
5#
发表于 2008-2-2 11:42:58 |只看该作者
其实,每个判定需要之前,重新生成一个乱数,貌似也可以解释当前所有发生的现象的

楼上说van修改器都能看乱数了。哦很好。可惜早就没兴趣玩san11了
今川控

使用道具 举报

三國漢詩大會·探花
正五位下 肥后守

白金会员勋章活跃勋章

帖子
15506
精华
3
积分
10029
金钱
7056
荣誉
157
人气
1011
评议
0

6#
发表于 2008-2-2 12:32:25 |只看该作者
楼主辛苦了,不过加两个图的话可以看起来方便点。
另外名婶也写过类似的帖子,楼主可以参考总结一下。
http://game1.ali213.net/thread-1463197-1-5.html

使用道具 举报

帖子
36
精华
0
积分
28
金钱
329
荣誉
1
人气
0
评议
0
7#
发表于 2008-2-2 14:35:19 |只看该作者
回5楼.即时生成乱数不能解释311的判定现象,比如一个战法不成功后,load重来,战法任然不会成功,如果是即时生成乱数,那用S/L大法来判定战法的成功与否就不会有意义.

回6楼,那张帖子我看了滴,而且,我写这篇文章的主要动力就是那张神帖.它里面讲到的是乱数的消耗办法,所以我在这里指出乱数的存在跟工作原理,应该是对它的支持跟解释吧.

Van能看到乱数么?实在是不知道,我用Van用得很少,习惯了用FPE来编辑.如果Van能查看乱数,那对于战斗的判定顺序,各种操作的乱数的消耗就很容易研究了.

使用道具 举报

魏 别驾

帖子
4421
精华
0
积分
2391
金钱
5081
荣誉
18
人气
0
评议
0
8#
发表于 2008-2-2 15:00:46 |只看该作者
原帖由 yutao_41 于 2008-2-2 14:35 发表
回5楼.即时生成乱数不能解释311的判定现象,比如一个战法不成功后,load重来,战法任然不会成功,如果是即时生成乱数,那用S/L大法来判定战法的成功与否就不会有意义.

回6楼,那张帖子我看了滴,而且,我写这篇文章的主要动 ...

呃,“神帖”实在不敢当啊~

van大的修改器偶一直用的,还没发现有察看随机数的功能。不过偶听说内存修改器ME可以看到~只是听说哦,听说~

嘛~总之楼主坐等猫猫酱来赏钱就是啦。
沉迷坦克世界……北区网通,八神疾風……

使用道具 举报

魏 别驾

帖子
4421
精华
0
积分
2391
金钱
5081
荣誉
18
人气
0
评议
0
9#
发表于 2008-2-2 15:06:51 |只看该作者
原帖由 pighead86 于 2008-2-2 11:42 发表
其实,每个判定需要之前,重新生成一个乱数,貌似也可以解释当前所有发生的现象的

楼上说van修改器都能看乱数了。哦很好。可惜早就没兴趣玩san11了

偶听说san9判随机的方法,是跟当前时间挂钩的~当然san11不是这样。san11的乱数,明显是存在存档里了——可能是个明确的数字,也可能是特定的一些参数,照着另一个固定的公式来合成。
沉迷坦克世界……北区网通,八神疾風……

使用道具 举报

帖子
327
精华
0
积分
174
金钱
521
荣誉
1
人气
0
评议
0
10#
发表于 2008-2-2 15:45:39 |只看该作者
明婶让我知其然,楼主让我知其所以然。

使用道具 举报

魏 儒林校尉

帖子
1024
精华
0
积分
543
金钱
3957
荣誉
3
人气
1
评议
0
11#
发表于 2008-2-2 15:51:44 |只看该作者
原帖由 长门大明神 于 2008-2-2 15:00 发表

呃,“神帖”实在不敢当啊~

van大的修改器偶一直用的,还没发现有察看随机数的功能。不过偶听说内存修改器ME可以看到~只是听说哦,听说~

嘛~总之楼主坐等猫猫酱来赏钱就是啦。 ...

全局信息中的LP54后面的就是吧

使用道具 举报

帖子
36
精华
0
积分
28
金钱
329
荣誉
1
人气
0
评议
0
12#
发表于 2008-2-2 17:16:14 |只看该作者
其实乱数这个东西存在与各种战棋类的游戏中.但是种类很多.象311,火纹这些调档以后不会改变成功率的一般都是在某一个时间统一生成一组或多组乱数,这种设计的优点是设计方便,还有一种是真正的随机生成乱数,即是在判定成功与否的前一刻随机生成所判定所需要的乱数.这种即时性的乱数是无法靠s/l来预先发现的.优点是多样化,不可知性,随机性高.缺点就是需要大量的运算.设计不容易.现在的大多战旗游戏已经开始了用固定乱数+即时乱数结合来判定游戏成功率了.311不知道为什么还是用的固定乱数.309就是用的即时乱数来判定的,比如内政"暴击"(sorry,我不知道怎么形容内政效果翻倍那个情况..)后,你调档重来,用相同的操作就不一定"暴击"了.战斗前先存档,战斗中的兵法也是随机的.

个人猜测可能311这种走格子的游戏用随机乱数来判定有什么不科学的地方...

在311原版刚出来的时候,我就开始一直用FPE编辑存档来研究里面所有参数的意义,不幸的是..自己并没有完全搞明白.本来想写个帖子来说说存档编辑里所有代码的意义..不过Van已经相当强大方便了,用FPE来修改完全没有市场.在这里想Van大膜拜...

使用道具 举报

帖子
359
精华
0
积分
180
金钱
543
荣誉
0
人气
0
评议
0
13#
发表于 2008-2-2 18:16:32 |只看该作者
楼主分析不错,但是我有我个人的看法...

比如对"伪随机"的理解..在学校里上课时(专业是软件工程),我得到的信息是:包括C语言之类的给出的如RND()函数产生的随机数,全部是伪随机的.在目前,并不存在真正的"真随机"数,所以现在很多人在研究如何以某种算法或者其他方式能够产生一个真随机数.
在这里,"伪随机"与"真随机"之间的区别就在于:伪随机看似随机,其实这仍然是通过一定的算法产生的一连串有一定规律的数列,并且这样的数列可以重复产生...这也就能够解释为什么三国11里S/L前后,特别是在舌战上,S/L前后如果没有触发更改随机数产生的那个因数的手段(比如评定),双方的舌战牌会一样(至少最开始是一样),而如果你S/L后按照之前出牌顺序,那么AI给出的顺序也跟S/L之前一样,不管AI是否拥有在事后看来更合理的牌以及策略...
而对于"伪随机"的另一个证据来自天幻网某强人反汇编FF8程序后得出的Squall的特殊技以及其后续技能的触发算法,以及所得出的按照某一方式攻击则必定触发Squall特殊技以及其后续技能Lion Heart的发动...如果是"真随机",那么此规律将不可存在;而这是"伪随机"的一个算法,当然是基于一个大的概率算法的伪随机,仍然能够证明伪随机与真随机上的区别.

使用道具 举报

帖子
395
精华
0
积分
198
金钱
1871
荣誉
0
人气
0
评议
0
14#
发表于 2008-2-2 18:26:09 |只看该作者
果然和火纹的乱数系统一个道理啊,谢谢楼主的研究

使用道具 举报

帖子
4833
精华
3
积分
3417
金钱
6792
荣誉
40
人气
2
评议
0

15#
发表于 2008-2-2 21:23:39 |只看该作者
随机函数的应用
其实不用想得太多
开一次挡,相当于用srand()函数产生一组随机数(随机种子)如8,15,87,91,12,64,35...
而每一次概率事件则用rand()函数获得其中一个数
至于srand()产生随机种子的机制鄙人不知
简单的话可能是源自系统时间,即只要锁定系统时间,那么产生的随机数组永远相同?
有爱的诸君可以试试,记得354以前有锁定工具?那么在相同的君主开局条件下,锁定时间,采用相同的行动,结果为一定...

正しき者の唇は叡智を陈(の)べ
その舌は正义をものがたる
试练に耐えうる者は幸いなり
何となれば、いったん评価されしときは
人生の王冠を受くるべし
主よ、圣なる炎よ、怜れみ给え
おお、いかに圣(きよ)く、いかに静けく
いかに慈悲深く、いかに情厚く
おお、纯洁なる白百合

使用道具 举报

帖子
263
精华
0
积分
132
金钱
446
荣誉
0
人气
0
评议
0
16#
发表于 2008-2-2 23:34:44 |只看该作者
以前打火焰纹章的时候没想那么多,只是发现SL后结果会不一样就拿来用了,没想到现在已经升华到理论的高度了啊,PFPF!

使用道具 举报

帖子
342
精华
0
积分
171
金钱
1299
荣誉
0
人气
0
评议
0
17#
发表于 2008-2-3 13:12:43 |只看该作者
这世上没有真正的随机数,要说有的话,也只存在于人类的大脑中,比如让你想一个数,这个数是真的随机的。
结束才是真正的开始

使用道具 举报

昭信校尉

帖子
689
精华
0
积分
415
金钱
2985
荣誉
7
人气
0
评议
0
18#
发表于 2008-2-3 18:07:06 |只看该作者

很好,很强大
终于又看到技术贴了

使用道具 举报

帖子
4833
精华
3
积分
3417
金钱
6792
荣誉
40
人气
2
评议
0

19#
发表于 2008-2-3 18:13:49 |只看该作者
原帖由 长门大明神 于 2008-2-2 15:06 发表

偶听说san9判随机的方法,是跟当前时间挂钩的~当然san11不是这样。san11的乱数,明显是存在存档里了——可能是个明确的数字,也可能是特定的一些参数,照着另一个固定的公式来合成。 ...

恩,是这样
39跟读档时间挂钩,311只和开局时间挂钩,另外追加一个参数-'当前已经历概率事件个数'
(这里的'挂钩',都是以srand()生成随机种子的方式来完成的,即生成'lz所说的乱数'组)
ls提到的查看'乱数'就是读取开局时间和'当前已经历概率事件个数'这两个参数在修改器中连续rand()以显示'乱数'其他元素的过程...
上面只是鄙人根据想到的两种随机方式来推测39和311,可能并非如此,但类似
当然如果能联系到van大人等直接请教最好

作为普通玩家我以为从长门君的帖子中掌握'伪随机'应对的方法即可..没有必要去深究程序工作机制

[ 本帖最后由 YXWScan 于 2008-2-3 18:34 编辑 ]

正しき者の唇は叡智を陈(の)べ
その舌は正义をものがたる
试练に耐えうる者は幸いなり
何となれば、いったん评価されしときは
人生の王冠を受くるべし
主よ、圣なる炎よ、怜れみ给え
おお、いかに圣(きよ)く、いかに静けく
いかに慈悲深く、いかに情厚く
おお、纯洁なる白百合

使用道具 举报

蜀 突騎軍
开疆拓土 帝国武士 风林火山

帖子
807
精华
0
积分
404
金钱
2265
荣誉
0
人气
1
评议
0
20#
发表于 2008-2-4 00:50:12 |只看该作者

回复 #1 yutao_41 的帖子

我发现一个小问题.lz说的单挑成功率....
第一次,假设孙策单挑匪兵甲的成功率是32%.32<96.判定单挑失败,匪兵甲拒绝单挑
那个名词好像不准确吧.单挑成功与否.与单挑接受与否是两个概念吧.呵呵

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-9-5 08:38 , Processed in 0.401933 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到