→ meowyih: 說真的, 程式攤開來九成九就一行 if rand()%100 > 99 06/01 20:53
→ meowyih: { 喔耶出運啦! } 玩家看了也不會覺得公平的 :> 06/01 20:53
其實大部分都不是,因為rand()出來的東西是偽隨機,理論上直接這樣寫會出問題。
至少我知道的專案都是用亂數表加上種子來處理,盡量讓結果接近真隨機。
(我文組也不是寫程式的,這方面的東西有老大要解釋的麻煩幫個忙www)
然後這個種子通常是用時間來抓,
簡單來講就是某些手遊有同時間抽卡會有相同結果的都市傳說,這是有可能的。
這樣看起來好像就是所謂的歐洲時間?
但其實時間的種子通常會以秒以下來抓,真的有歐洲時間那也可能只是毫秒等級的時間。
當然,亂數是有可能被破解的。
比較有名的例子就以前的PM。
用破解亂數運作、調整時間的方式抓自己理想體質的PM曾盛極一時。
但是前陣子GF調整之後破解PM亂數變成幾乎不可能的任務,所以亂數世代也隨之終結。
這部分我也問過程式,他們幾乎都是說要破解刻意加強設計的亂數是幾乎不可能的事。
所以還是多做好事,扶老婆婆過馬路最實在,起碼有幫助到別人 ==
然後卡池的內容也不會寫在程式碼裡,因為那是我們這些雜工企劃要處理的東西。
基本上大部分的遊戲資料都是用表格在管理,卡池內容也一樣。
卡池其實不是讓你直接抽到商品。
而是先抽塞滿相同機率的商品的箱子,再從箱子中抽取商品這樣。
(避免一張搞到又臭又長,debug的時候看到san值歸零)
只是我高中的時候就把數學課本完全丟掉了,
不太確定這樣設計會不會影響到抽取的期望值計算www