26 12
发新话题
打印

请问老师 乱数 是一个什么概念?和随机函数有关吗?

请问老师 乱数 是一个什么概念?和随机函数有关吗?

请问老师 乱数 是一个什么概念?' T. M% D" [& h% h7 i2 l
和随机函数有关吗?

TOP

你一定是看了关于火焰纹章关于"凹点"的文章才知道乱数吧?
' h( O/ j! ~- o* P* _6 F5 U
# T# h  }5 z7 r; d其实乱数可以算从1-99的随机数(不包括0和100)
) ~' L" A! v+ z这样可以用来表示游戏中的概率.+ k+ e0 Q" k: Q3 G5 H
# q. v* `1 G  X" Z5 t
比如某游戏角色的命中率为90.( f. K9 S+ u: R% _: M5 Z: A0 e  P+ W
如果乱数大于90,则判定为MISS. |! j+ ?* t: \) ^% L' V' ^
小于90,则判定命中.
本帖最近评分记录
  • 源源祥 经验 +6 我很赞同 2008-6-29 20:30
坚持骑士精神,公主``永爱``

TOP

应该就是随机数。
性格决定命运,存在就是合理

TOP

如果命中率为90.  那这个命中率要如何搜索呢?把它改成10 命中率就极大提高了吧?

TOP

我要告诉你的是,乱数是变化的,并且是无规律的变化,这也就是为什么它俗称"乱"数的原因.
) e& q+ e3 V5 e5 t1 `& D7 X
8 a6 k: q1 `6 k% F6 R* M2 U. y6 J时刻变化的是乱数,所有游戏数值与百分比有关的都要靠它来判定.
" Y9 P* _9 x( M2 f7 b$ k/ ?$ Q我来说明一下火焰纹章的乱数.
  W& s4 x& G$ V5 {7 x" ^/ I# e- p- f1 s
一个角色,攻击另外一个敌人的时候.
  |  h9 t+ B. ^' K2 x- i' Z系统会自动随机出一个100以内不等于0的正整数.
2 L0 N. }" S6 v4 G假定这个角色的命中率为75.0 Q/ F5 ~8 z9 t# O+ ?4 _
100则为必中,那么75的命中率应该算很高了吧?
+ I0 g: @) u6 C- q很好,那么接下来,如何设置乱数与游戏数值,好让75容易命中?' A# o! d, s/ ?

% x: p( a" Z" L5 {8 n& A2个方案:
9 k3 f7 t9 H9 W8 B4 g
) T: i3 Y% t# R8 y4 }第一方案:如果乱数大于命中率,则判定为命中.- D9 C# C# o% b. A4 `9 |$ O& @
分析:这样一来,如果要命中,那么除非随机出现的数字为包括75在内的从75到99这25个数.100个数字里随机出现这25个数中的任意的几率为25%.显然与命中率75相去甚远.
5 Z+ U: \' E1 I' @8 y1 A6 Q( K2 U9 ^) h3 L  ?& T
第二方案:如果乱书小于命中率,则判定为命中.3 D  s9 F4 F* x
分析:换成这样的话,如果想命中敌人,那么随机出现的数字就必须是不包括0在内的从1到75这75个数.100个数字里随机出现前75个数中的任意一个数的概率为75%,与命中率75相符.' M# X; m0 f- f4 j* U
4 K3 f; e$ `- K: X) ^
你说把命中率设置为10就更容易命中,那就是第一个方案,不过这个方案是错误的,不仅在分析上出错,在游戏里就会表现为,命中率数值高的角色(比如命中率95)在实际游戏中的命中率要比命中率数值低的角色(比如命中率60)的实际命中率要低./ R* S% V# @4 [0 x0 ~3 W, D- I
这样就大错特错了.
坚持骑士精神,公主``永爱``

TOP

引用:
原帖由 iceworld 于 2008-6-30 21:29 发表
* x# M: Z& o: U8 e, E如果命中率为90.  那这个命中率要如何搜索呢?把它改成10 命中率就极大提高了吧?
0 R; ~4 q2 F/ q5 P/ W& s
我不懂编程,我告诉你思路好了.
5 B: M% b% e1 F$ V% g6 [& j5 i8 i5 _: Y  w+ r" f  M; e
命中率是0或100就直接判定为MISS或命中,就不用依靠乱数了.
; H  l4 V8 ~7 z5 r3 Z) `0 \+ b# ^) A& M7 \
命中率如果是X,乱数如果是Y.0 ^' `2 f; y) \( _* ?# ]0 ~
那么就设置为:
; Z0 n+ H. g  l& O7 ~9 J当乱数X小于或等于命中率X时,攻击判定为命中.' E" f- }* \6 M
当乱数X大于命中率X时,攻击判定为未命中,即MISS." I6 v+ U7 w& C% o$ F2 Q$ S
+ ?: c5 Q0 G+ R# v2 r4 q
这个你把乱数想象成乱变化的100以内不包括0和100的正整数,再拿它和静止不变的命中率一联系,你就知道该怎么样判定了.
坚持骑士精神,公主``永爱``

TOP

我想问的是那个 静止不变的命中率 能不能搜索到呢?

TOP

这个就不是我能回答的问题了.
$ o, ^9 j( E$ p不过我要告诉你的是,这个命中率也是会随着其他游戏因素变化的
! o/ \& {& g* ]! U# u# b$ `" P8 \我所说的静止是相对于变化的命中率,战斗开始的时候,命中率是不会变化的(因为战斗前已经计算好了^o^)
坚持骑士精神,公主``永爱``

TOP

LS你有很好的数学基础,真佩服你。
性格决定命运,存在就是合理

TOP

命中率 要是能想办法搜到这个就好了 比如外传里 爆月光 就比爆太阳容易

TOP

引用:
原帖由 曹老师 于 2008-7-2 13:04 发表
& G% a! y, v7 j7 n5 g+ _2 ILS你有很好的数学基础,真佩服你。
5 [/ K9 {& i5 U5 F6 d/ r( h8 M! N; F老师,恰恰相反,我数学非常非常菜=,=
- S1 o' x7 q5 E1 |5 J这个是别人已经分析过了的,我又按我的理解给LZ说明了一下而已.
坚持骑士精神,公主``永爱``

TOP

至少你解释的很好,你自己也一定理解了。
性格决定命运,存在就是合理

TOP

已经是别人解释得很清楚的东西,如果我还不理解,那我低能了嘛
坚持骑士精神,公主``永爱``

TOP

老师学习6502汇编是不是要找个编译器来照着书打例子呢?我觉得光看书效果不好

TOP

引用:
原帖由 iceworld 于 2008-7-30 19:35 发表 * d% O6 S; V1 W1 P2 h3 @1 f0 D
老师学习6502汇编是不是要找个编译器来照着书打例子呢?我觉得光看书效果不好
) I/ S4 K3 b& W. D+ q0 D/ H下个仿真器去试炼下吧
附件: 您所在的用户组无法下载或查看附件
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

哦 多谢

TOP

这个例子汇编(F7)完了,怎么运行呢?) g2 [$ L' @6 M2 J
simulator / step into 是灰色的。$ g1 ]; [% n! o' v

8 K% S$ a6 n  k# _/ @5 |) C; Program to add two 8 bit numbers
; w' f4 P" k0 T9 y; The numbers being added are 4 and 6
, U/ t& Z2 R+ u6 ?0 z- P( K: ^7 S; Add0801.65s
6 m" }) I6 g; I0 A9 _
$ @2 o2 d1 t* }4 _. I8 _. s% P5 Z* R. a5 P
        .ORG $0200        ; Store machine code starting here
# J5 [9 c6 l. k
8 E, I( E6 F( L0 _% @8 k        LDA #$04        ; Store first number (4) in
% ~2 A% D6 A8 O1 O        STA no1                ;   byte labelled no1* P' P: r1 V# H( Q  Q( P( _
        LDA #$06        ; Store second number (6) in
$ U5 j5 p4 ^8 Z& _9 h# p# L$ \        STA no2                ;   byte labelled no2
+ p9 M1 u. L7 J5 D( G& D2 q+ T" u: g0 a$ k8 `. n, ^* B2 ?& z/ w
        CLC                ; Clear the carry flag9 C: r7 Q: G: |- h7 T
        LDA no1                ; Load first number into accumulator register
* M4 p- Y6 _' K# h( N; F) F5 l/ ~* Q        ADC no2                ; Add with carry second number
% m$ }7 Y, Y, K" ^$ {! c2 U7 W        STA res                ; Store the result in byte labelled res
+ F. f! F6 \% Y0 S; g4 D- ?" j          I& y  M: i0 U4 }
        BRK                ; Stop running the program' \( q1 q& N, _1 G, D! e
5 L' S- s& H9 C9 b- ~/ g
        * O: \6 M/ T/ a0 X) O& _
no1:        .DB $00                ; The .DB directive instructs the assembler to 5 J, w" {  g: e: Y
                        ; reserve one byte (8 bits)' @5 J. e( z3 d. p1 `$ c; t5 C
no2:        .DB $00                ; of memory, and allows the programmer to refer
4 ~: Y) v) E$ v+ }6 j9 Y# V: s% I                        ; to it by using a label.
2 [% m/ d- g" L! B1 m9 R  Dres:        .DB $00                ; This is how you declare variables.

TOP

后面的注解如果用中文也是没有问题的,不过学习编程的人最好学习英文。
性格决定命运,存在就是合理

TOP

老师知道这个程序用 6502 macroassembler and simulator 就是上面附件里的汇编器 应该怎么运行吗?

TOP

我知道了,打开调试器,就能运行了~

TOP

TOP

试试看。
性格决定命运,存在就是合理

TOP

不知道那个屏幕效果是怎么出来的。。。
Yesterday is history.
Tomorrow is a mystery.
But today is a gift.
That is why it’s called the present.

TOP

是呀  还不太会

TOP

请问老师6502汇编中 ( z4 C4 ?) g" i
*= $6002 ]5 ~9 I5 w+ t# f  {: B3 {" `
这句起什么作用?

TOP

 26 12
发新话题