
Excelとファイアーエムブレム
目的
大好きなゲームのひとつ、ファイアーエムブレム。このゲームの特徴のひとつである支援効果は、特定のキャラクターの組み合わせで出撃すると発生し、プレイヤーにとって有用な効果を様々発揮します。各ステージの出撃人数には上限があって全員を連れて出撃することはできません。では、どういうメンバーで出撃すれば最大の支援効果が得られるのか、それを最適化するツール(マクロ、VBA)を作ります。
要件
ファイアーエムブレムエンゲージを対象とする
支援効果最大とは支援発生数が最大であると仮定する
ステージ毎の出撃人数は変更できるものとする
ユーザインタフェース
1列目と2列目に支援効果が発生するキャラクターの組み合わせを記入
3列目は6列目で支援が発生するキャラクターの両方が出撃した(1が立った)支援が発生する(1が立つ)よう計算式を自動で埋める
4列目のセルは支援発生合計数で目的関数となる
5列目はキャラクター名を記入
6列目はそのキャラクターが出撃するかどうかでバイナリー決定変数
7列目のセルは出撃数合計で制約条件となる
8列目は今回出撃するステージの出撃人数を記入
ボタンを押して出撃メンバー最適化を実行

結果
例えば出撃数14人のステージでは、アイビー、ヴェイル、エーティエ、オルテンシア、クラン、スタルーク、セリーヌ、パンドロ、フォガート、モーヴ、ラピス、リュール、ルイ、ロサードが支援発生合計数を最大化するメンバーとして選ばれます。リュールは全員と支援効果があるので基本的に選ばれます。支援効果の合計数は50です。もちろんこのメンバーが実際に強いかどうかは別問題です。笑
強さも考慮したい場合は支援数だけではなく目的関数に強さの要素も合計するなどの工夫をする必要があります。
最後に
以下はプログラムソースとファイルを添付していますが、再利用目的の意味合いが強いのでカギをかけておきます。笑
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?