
Excelと世界樹の迷宮
目的
大好きなゲームシリーズのひとつである世界樹の迷宮。ダンジョンマッピングも楽しいけどキャラクターメイキングも楽しい。
このゲームの特徴として条件ドロップという要素があり、ある条件を満たした状態でモンスターを倒すとレアなアイテムを入手することができます。その条件というのが味方パーティのスキルに依存(毒付与とか睡眠付与とか)していることが多く、そういったスキルを持たないとそのために別のキャラクターを用意したりする必要があって少し面倒。
そこで今回はキャラクターメイキングの一環として、どういうクラス(職業)のパーティを組めば条件ドロップに必要な効果をもつスキルを網羅できるのかという最適化問題をソルバーで解くツールを作りたいと思います。
要件
世界樹の迷宮Xを対象とする
5人パーティ10クラス(メインクラスとサブクラス)
斬属性、突属性、壊属性、炎属性、氷属性、雷属性、武器属性、無属性、耐性無視、スタン、即死、石化、呪い、睡眠、混乱、麻痺、毒、盲目、頭封じ、腕封じ、脚封じ、伝染のスキル特性をパーティとしてカバーする
スキルポイントを節約するため、マスター(レベル40以上)で覚えるよりもベテラン(レベル20以上)、ベテランで覚えるよりもノービス(レベル20未満)で覚える方が有利とする
特に使ってみたいクラスについては優先的に選ばれるように調整できる
ユーザインタフェース
ユーザインタフェースはこんな感じです。

1列目にクラス
2列目から23列目にそれぞれのクラスで覚えるスキル(ノービスで覚えるなら3点、ベテランで覚えるなら2点、マスターで覚えるなら1点)
24列目にユーザが使いたい度数(大きい方が使いたい)
25列目が決定変数となるクラス採用フラグ(選ばれたら1)
26列目が採用されることによる評価(24列目×25列目):A
27列目以降は採用されることによるスキルの評価(2~23列目×25列目):B
21行24列のセルは使いたい度と早く覚える度のバランス調整重み
21行25列のセルは採用クラス数(10にする)
21行26列のセルは目的関数値(重み×Aの合計+Bの最大値の合計)
結果
使ってみたい度として初登場クラスのヒーロー、和風クラスのブシドー、ショーグン、シノビ、今回考慮していないバフ担当としてプリン(セ)ス、探索担当のレンジャー、ファーマーが選ばれやすくなるように重みを設定。結果は次のようになりました。
ヒーロー、ブシドー、レンジャー、ガンナー、ドクトルマグス、プリン(セ)ス、ショーグン、シノビ、ファーマー、リーパー。
使ってみたい度をまったく優先していないのに、一般的に強いと言われているガンナーやリーパーが選ばれるのは興味深いです。ほどんどのスキルがノービスやベテランの段階で覚えられるのも遊びやすそうです。
この10クラスをどう5人で分担するのかはステータスの適正とかキャラクターのイメージとかもあるので好み全開で。このツールを作っていたらゲーム始める前から達成感にあふれていますが、答え合わせの意味も込めてこんなパーティで遊び始めてみようと思います。
ヒーロー/ドクトルマゲス
リーパー/ファーマー
ブシドー/シノビ
ガンナー/レンジャー
プリン(セ)ス/ショーグン

最後に
以下はプログラムソースとファイルを添付していますが、再利用目的の意味合いが強いのでカギをかけておきます。笑
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?