ドラフトシミュレータの開発
ドラフトアプリのアルゴリズムがガバガバだったのとプレリ前にシールド・ドラフトの練習がしたいのでドラフトシミュレータを作成しました。
開発言語はVBAを使用しています。

最初は取り込んだカード画像を見ながらピックできるようにしていたのですが、手間が掛かる上に動作が重いため、文字ベースの簡素な作りにしました。
練習用だから見た目は気にしない事にしましたw

備忘のため、仕様を書いておきます。

【機能】
・ドラフトシミュレータ
エキスパンションとプレイヤー人数を設定し、ドラフトを行います。
ドラフト完了後は、後述するデッキ構築画面にてデッキを保存可能。

・デッキ構築
ドラフトもしくはシールドのカードを一覧から選択し、デッキを作成します。
作成したデッキはテキストで保存可能。

・シールドシミュレータ
エキスパンションを設定し、そのまま出たカードからデッキ構築画面で
デッキ作成を行います。

・対戦シミュレータ
保存したテキストからデッキを読み込んで1人回しを行う事ができます。
一応2人分のデッキを読み出して擬似的な対戦を行う事も可能。


【アルゴリズム】
評価関数により個々のカードに対して現在の状況(マナコスト、色、スペルの比率等)を元に点数をつけ、点数が最大のカードをピックします。
エキスパンションによって評価基準を変えたりします。
例えば、基本は2色ピックですが、タルキール覇王譚では氏族の色を優先しつつピックします。

【バージョンアップの予定】
今後のバージョンアップの予定としては以下。

▼プレイヤーごとに同じ評価関数を使う為、似たようなピックになってしまう。
何パターンか評価関数を作成しておき、プレイヤーごとにランダムで評価関数を適用すれば面白いかもしれない。

▼アーキタイプドラフトをできるようにする。
現状は、点数が高いカードをただピックしているだけなので、シナジーやコンボを意識したデッキになりにくい。
予めデータベースでアーキタイプ毎にカードをグループ化しておき、グループのカードをピックしている場合は、評価点数をプラスすればなんやかんやでアーキタイプデッキになるのではないかと思います。

▼カットをあまりしない。
どうするか検討中。
微妙なカードをピックするぐらいなら色の合わない評価点数が高いカードをカットする機能をつけてもいいかもしれない。
しかしCOMがカットまでし始めるとわけわからなくなりそう・・・

▼色変えしない。
色毎に何枚ピックしているかを記録し、ピック数の多い色の評価点数が上がるようになっています。
そのため、一度色を決めてしまうとずっと同じ色ばかりピックしてしまう傾向があります。
色変えするとすれば適当なタイミングで自分のピックしたカードを確認し、評価点数が一定数以下の場合は、別の色に乗り換えるロジックを入れるとかになると思います。
ただどの色に乗り換えるとかその辺の判断が難しいので色々考え中。

コメント

K-hei
2015年4月2日15:10

おぉすごい!
この手のアプリはAI作るのが一番難しそうですが。
それにしてもVBAとは。

色
2015年4月2日18:00

AI作るの楽しいよ!
ドラフトの定石みたいなのをロジックに落としこんでいくだけだから案外簡単。

VBAは一番慣れてるから使ってるだけw
本当は別の言語で作りたいんだけどねー
色

最新の日記 一覧

<<  2025年6月  >>
1234567
891011121314
15161718192021
22232425262728
293012345

この日記について

日記内を検索