Clicker-Heroes

Clicker Heroes Ruby的機會?

  • September 4, 2015

從魚身上得到 1 顆紅寶石的機率是多少?

是 50% 的機率,還是沒有得到 Ruby 的機率更高?

我只得到硬幣的次數比得到紅寶石的次數多。

紅寶石

從魚中獲得紅寶石的機會究竟有多大?

讓我們看一下原始碼,好嗎?

負責(目前)魚和蜜蜂的腳本是heroclickerlib.managers.HiddenObjectManager.

在該腳本中,我們找到了一個函式private function onHiderClick(param1:MouseEvent) : void

該函式負責點擊魚時的點擊事件。

private function onHiderClick(param1:MouseEvent) : void
 {
    var _loc4_:* = 0;
    var _loc5_:* = NaN;
    var _loc6_:* = NaN;
    this.removeHider();
    if(Rnd.boolean(0.44))
    {
       _loc4_ = 1;
       if(Rnd.boolean(0.04 + this._userData.ancients.doubleRubyPercent / 100))
       {
          _loc4_ = 2;
       }
       this._userData.addRubies(_loc4_,"hidden_object",-1);
       _loc5_ = this._battleManager.display.mouseX;
       _loc6_ = this._battleManager.display.mouseY;
       this._battleManager.uiManager.battleUI.transientEffects.showGeneralMessage(_loc5_,_loc6_,_("+%s Ruby!",_loc4_));
    }
    var _loc2_:Monster = new Monster();
    _loc2_.id = 2;
    _loc2_.level = this._userData.highestFinishedZone + 1;
    var _loc3_:Number = this._userData.getMonsterReward(_loc2_) * 10;
    _loc2_.isBoss = true;
    this._battleManager.itemDropManager.goldSplash(_loc3_,_loc2_,ServerTimeKeeper.instance.timestamp);
    HeroClickerSoundManager.instance.playSoundEffectById(36);
    this._battleManager.uiManager.battleUI.transientEffects.showGeneralMessage(580,152,"Yay!!");
 }

這裡有兩個函式呼叫很重要:

  1. if(Rnd.boolean(0.44)):這在內部檢查(均勻分佈的)隨機數是否小於 0.44。這估計出至少有一顆紅寶石的機率幾乎是 44% 。
  2. if(Rnd.boolean(0.04 + this._userData.ancients.doubleRubyPercent / 100)):這個相當長的呼叫會檢查隨機數是否小於 0.04 + 你的古人的額外雙倍紅寶石百分比。這意味著在所有獲得紅寶石的情況下,有 4% 的情況下您會獲得 2。

沒有任何古人,獲得 2 顆紅寶石的機會約為 0.44*0.04=0.0176 => 1.76%

在魚上點擊 1000 次後,您獲得的平均紅寶石數量為:444,4 => 44,44%

440 times at least one ruby
=>  440*4%  =     11 times 2 rubies = 22    +
=>  440*96% =  422,4 times 1 ruby   = 422,4

==> 444,4 rubies => ~444,4/1000 = 44,44% chance of getting one ruby on average

每次點擊的預期紅寶石數量為 0,4444。

我使用JPEXS Free Flash Decompiler來獲取原始碼。

引用自:https://gaming.stackexchange.com/questions/233983