8月 042013
 

確率操作してるんじゃね?という疑惑がでていることへの、個人的な見解です。

*注意
始めに断っておきますと、プログラミングは初心者クラスでしかありませんので、
おかしな見解を披露しているかもしれません。

メダル成長の仕組み(前置き)

まず、カード進化の仕組みについて考える前に、メダルの成長とはどういったことなのかを、考察しておく必要があります。

  • ☆1 ゴールド1枚でレベルアップ。 同属性だと、1.5倍程度上がる
  • ☆2 ゴールド1枚で20%ほど上昇。 同属性だと、3枚で約9割
  • ☆3 同属性5枚でやく5割。

このことからの推測ですが、

  1. メダルにはレベルアップするための経験値テーブルが存在する。
  2. ☆が大きいほど、必要値が大きくなる。
  3. カードを食わせることで、この値が一定数上昇する。

といったことが推測されます。

仮に以下の値とします。

☆1:1000
☆2:5000
☆3:15000
ゴールドカード:経験値 1000 (同属性時1500)

このように、ゲームというのはすべて数字と計算から構成されています。

カード進化

カード進化はベースメダル + サブメダル によって求められます。

ゴールド(火土水氷風雷) + 付与
☆1Lv.1 ベース +20.0% サブ +10.0%
☆2Lv.1 ベース +35.0% サブ +25.0%
☆3Lv.1 ベース +60.0% サブ +50.0%
☆1Lv.3 ベース +38.7% サブ +28.7%

上記はゴールドカードに、各種メダルを付与した場合に表示される成功率を表しています。
注目すべきは、レベルを上げることによって、成功率が上昇する点です。

メダルの経験値分、値が上昇しているのではと推測されます。
(メダルの基本値 + メダルの経験値 = 合成成功値)

このことから、カードには成功率100%にするための値とすべてのメダルの合成成功値の割合が
成功率として表示されているのではと推測できます。

メダルの合計7000/成功必要値10000 = 70%

さて、本題の100%なのに失敗するについてです。
内部的には、こんな感じであったと思われます。

メダルの合計12000/成功必要値10000 = 100%

10000より上の”桁”は無視されていた
桁落ち、桁あふれなどと呼ばれているケースです。
成功率とは別に計算をしているはずなので、何かの過程である値以上が無視されてしまった場合、表示と異なる結果になります。
越えてしまった2000が、マイナスに影響していた
計算の過程で、超えた分がマイナスに影響してしまったというものです。

何が言いたいかというと、
ソースコードとデータを見てみない事には、真偽はわかりません。
スクエニも、ゲームを作るうえで誇りを持って仕事をされていると思うので、
アップデートがガッカリだったとしても、こういった部分は信用してよいと思います。

プログラムにおいてバグは起きるものなので、ちょっとしたミスだったと私も思っています。

他のブログの更新情報



  3 Responses to “確率操作疑惑に対する庇護”

  1. プログラマーの端くれとして、表示される数字と内部での数値が違ったことに驚きを感じました
    私なら同じソースから引用しますね
    その方が簡単ですし、間違いがないですから
    同じ計算式を使わないというのはどういう理由があるんでしょうね

  2. >著名さん
    同じ計算にしない理由は、確かにナゾです。
    なんとなく、クライアントプログラマとサーバープログラマが別なのかなとは思います。

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Top