上位互換・下位互換のノード管理
上位互換、下位互換という概念は、カードゲームならほとんど間違いなく存在するものです。
状況を限定して考えたうえで確定する場合においても上位互換・下位互換に関する発言がなされることもあります。
例えば、コストのないカードゲームを考えましょう。HPと攻撃力だけが記載されたカードで
勝負をする・・・そこで攻撃力が2、HPが4のカードと攻撃力が4、HPが4のカードが現れたらどうなるでしょう?ここに生まれるのが上位互換・下位互換の概念です。
それではここで問題です・・・攻撃力が2、HPが4のカードと攻撃力が4、HPが3のカードが現れたら、どちらが上位互換になるでしょうか?これは、HPを上位と見るか、攻撃力を上位と見るかが確定していない場合には決着がつきません。そんなとき、「底回数」というものを数えると、この上位互換・下位互換について、多少なりとも判断がしやすくなります。
底回数とは、2つのカードのすべての値を有利か不利かでまず上位・下位に区別し、
数値バランスを定義して比較を行うものです。
例えば
A「コスト3:HP5:攻撃力4:防御力2」というカードと
B「コスト4:HP6:攻撃力5:防御力3」というカードがあったとします。
コストは低いほど上位、他は高いほど上位とします。その値の個数比は1:3です。
Aから見て、Bのカードは
{(6/5)×(5/4)×(3/2) }^1/3 = 約1.31
{(4/3)^-1}^1 = 0.75
より、0.75*1.31=0.9825倍の価値がある、ということが分かります。
つまり、Aのカードは、Bのカードよりも価値が高い可能性がある、ということです。
定式化しますと、
A,Bのカードの持つすべてのステータスをA1,A2,A3,......An B1,B2,B3......Bnとする。
n個のステータスがあり、高い方が上位となるステータスがk個あるとする。
そのk個のステータスをA1~Ak、B1~Bkと仮定して、
[Σ∩(1≦t≦k){Bt/At}^(1/k) ]* [Σ∩(k<t≦n){At/Bt}^(1/n-k) ]≧1であれば、
Bの方が上位互換、そうでなければAの方が上位互換、ということです。これが底回数の概念です。
この定理がなぜ実用的でないのかというと、「効果」に対してそれぞれの価値を振るということが難しいことが挙げられます。それこそ前回「シナジー」について説明しましたように、基本的に
効果の概念は単位あたりに有効度を定義することはどうしても不可能で、かならずコンビネーションを生み出す必要があるためです。
なかなか、カードゲームの世界も奥が深く、カードゲームを作ろうと意気込んで思うのは
バランスというものの大切さだと、また知ることとなりました。
コンビネーションを上手く定義できるアルゴリズムを現在頑張って考えていますが、
やっぱりシナジーが値にできたとしても、それをどうやって組み込めばいいのか、
さっぱり分からず、私のバランス概念はなかなかうまく定式化できないようです。
そう考えてみると、世の中のゲームってよく考えられてるなって思います・・・
やはり世の中にはバランスを考える天才もいうということなんでしょうね!
これは私も、負けていられなそうです。
・・・ではまた次回!
0コメント