2012年9月6日木曜日

新部隊シミュレータβ版、公開!

1週間ぐらい前からちょこっと紹介していた部隊シミュレータ・プログラムがようやくそれなりな形になったのでβ版として公開^^♪

最新版はブログページ右端のリンク一覧からどうぞ~
http://www1.axfc.net/u/3056715
pass:hid

戦闘シミュが動く環境の人ならば誰でも動くはず・・・?
ただし、あくまで目標としている機能が完全実装できた訳ではないので評価版、という扱いです。
使ってみてくださる方がおられれば、至らない部分、エラーや、こういった機能があればより便利等、教えてほしいです~
以下で、使い方を紹介。

追記10 - 新UI対応と、追加合成シミュ統合。(20121019) 以下の不具合を修正。
・部隊スキルのみが有効で、一般スキルが一つも効果対象に含まれていない場合エラーメッセージが出ることがあった。
・アップデートに伴うUI変更によって、D&D機能が正常に動かなくなった。
○スキル追加合成シミュレータ機能追加
○スキル逆引き検索機能追加
追記9 - 新機能。(20121004)
・部隊保存機能において、保存内容を一部変更。(従来からの部隊保存ファイルはそのまま使える)
○部隊編集画面からのドラッグアンドドロップで武将入力機能追加。
→一括入力ボタンを右クリックで起動
※ドラッグアンドドロップで追加した最も最近の部隊は「DRAGDROP_BUTAI」という部隊名で保存される
○兵科一括変更、兵数一括変更機能を追加
→スキルLV一括変更と同じく、右クリックより。
(スキルLV一括変更:スキルLV欄、兵科一括変更:部隊長の積載兵科ラベル、兵数一括変更:部隊長の積載兵数ラベルを右クリック)
追記8 - 教えて頂いた不具合を修正。(20120924)
・部隊スキルを入力する際、加速スキルのみ、だけにチェックを入れても加速部隊スキル登録が出来た。
→内部的におかしくなる可能性があるので、部隊スキルそのものが有効ではないと登録はできないようにした
・兵科「騎兵」を選択するとエラーになる。
追記7 - 更新。(20120913)
以下の不具合を修正。
・何も部隊を入力していない状態で速度計算ONにしたら落ちる
→ver1.21で直っていませんでした・・・
・武将をとびとび(例えば部隊長と小隊長Bのみ)に入力した場合おかしくなる
※本来はきっちりと詰めて入力するのが推奨される。
・速度計算機能において、正しい結果が得られない場合がある
追記6 - 更新。(20120912)
・画面サイズとシミュのサイズを調整する場合
○速度計測機能追加。
追記5 - ・・・もうシミュレータ関係の更新用のRSSか何か作ろうか・・・ (20120909)
以下の不具合を修正。
・wikiに無いスキルを適用しようとした場合にエラーで落ちる場合がある
○武将・スキルデータを最新版に更新(2012/9/9現在のwikiを参照)
追記4 - 更に・・・(略 (20120908)
以下の不具合を修正。
・ステ振り計算をする際、初期スキルがLV1に戻る
・部隊クリアをしても統率の未振り状態があった場合の表示が直っていない
○部隊保存機能を追加。
追記3 - 更に追加して修正・・・ (20120907)
以下の不具合を修正。
・ 攻防切り替えがきちんと反映されていない場合がある ※重大
△計算精度の向上。(一部勝手に変な丸めをしている箇所を訂正)
追記2 - 追加して不具合修正、機能追加。(20120907)
以下の不具合を修正。
・「上級器」スキルが適切に動いていなかった
・ 表示の一部修正
○部隊スキル有効機能追加。(手入力モード)
追記1 - さっそく2点不具合報告いただきました><;;(20120906)
以下の不具合を修正。
・ ランクアップした際の戦闘力がおかしい
・ 一括入力で兵1設定したのに兵満載のままになっている
○グラフの保存機能を追加。(グラフボタン右クリックより)


     ◆     □     ◆

まず、プログラムを起動すると、いかにもな感じ(笑)の画面が出てきます。
ここの画面で、シミュレートしたい部隊情報を入力する訳ですが。
各武将欄、左上にある「R(レアリティ)」を選択すると、そのレアリティに該当する武将が隣の「武将名」の欄で選択できるようになります。
で、目的の武将を選択すると、その武将のデフォの統率や初期スキル、★0LV0状態での将ステータス等の基本情報が自動で入力。
その後、
・ 指揮兵科を選択
・ 指揮兵数(自動入力では勝手に満載)を入力。
・ ランク(★)、LVを入力した後、「ステ振り」の欄から極振り選択をするとステを計算。
・ 追加スキルの入力
→ スキル枠、各スキルの一番左の小さいコンボボックスで追加したいスキル種類を選択。
するとスキル名の一覧が出てくるようになります。スキルLVまで必ず入力。
これを、各武将毎にやります。

・・・以前作った戦闘シミュでも思ったのですが、この作業が面倒(苦笑)
なので、今回は一括入力補助機能を実装。
『一括入力』ボタン(>>)を押して、こんな感じで入力。
決定ボタンを押せば・・・
ここまで自動で全入力^^ノ これなら割と楽になったかな、と。
スキルを入力した状態で、各武将の「追加スキル」「スロ2」「スロ3」の部分にマウスを持っていくと、
そのスキルの情報をツールチップで表示、みたいな微妙な機能も(笑)

で、これで『部隊分析』ボタン(▸)をクリックすると・・・
分析結果を出力。右側のテキストボックスで全体、各武将の情報を文字出力。
左側のグラフは、その部隊の総戦闘力の分布グラフ。
っと、目盛りが上みたいに密集して見にくい場合は、「X間隔」を設定して調整。
これで烈火・剛撃LV10を付加した廃天騎鉄部隊のシミュレートが出来ました、と。
グラフ見てみればわかりますが、火力凄まじいですね。。
「期待値 : 939125」。
私のコス30防衛ではいくら頑張ってもせいぜい総防70万でれば御の字。。
絶対勝てねぇ(*´Д`)=3 見ていてため息の出る数字です。

・・・で、もう少し続きがあります。グラフの左上のボタンからグラフ種類、「ヒストグラム」を選択。
すると、ヒストグラムが出てきます。(区間設定5万にした。)
適当にマウスを持って行って「生起確率 = 0.1142, 総戦闘力 = 875000」とか出てますが、
これはつまり、
約11%の確率で、この部隊は総攻85万~90万の火力が出ますよ、と言っている訳ですね。
(区間設定5万なので、87.5万を中央に取っている)
ここで信頼区間、という欄が新たに出てきたのですが・・・これについて少々説明。

このヒストグラム、ほぼ全部、どんな部隊構成でやっても大抵こんな感じの山型になるものなのです。これは何故と聞かれても、一言ではぱっとは答えられませんがそういうものなのです。
期待値(上の場合は約90万)のあたりが山の山頂になって、そこから外れるにしたがって徐々に高さが低くなっていく。自然な形だろうと思います。
※1武将のみ、とか、発動して意味のあるスキル数が少ない場合は山にはなかなか見えません。
で、こういう山型の分布は・・・とりあえず「正規分布」という確率の分布の仕方に従っていると考えて大体実用上問題ありません。乱暴極まりないですが、そういうものなのです!!
安易にWikipediaから正規分布の画像を持ってきた(笑)
μとかσとかは、期待値とか標準偏差と呼ばれる値。まぁ・・・緑色の線と上のヒストグラムが近いような、見えるようなそんな感じがするでしょ? そんなアバウトな感覚で十分かと。
注). 厳密に言えば、完全に正規分布に従っているとは言えません。
例えば、正規分布だと、山の裾野はどこまでも限りなく低くなりますが無限大、無限小まで続いていきます。ですが、今回のシミュレートだと、絶対にある一定値以上の火力は出ませんし、素攻以下の火力にもなりません。かつ、とりうる総攻撃力の値は離散的な値であり、決して連続ではありません。なので、山型で、グラフの高さがそれなりにある部分でもその範囲の値を全て取りうる事は保証されません。
何言ってんのか分からない、宇宙語話すならでワークステーションでやれ、と。
理系じゃない方はそう思われることでしょう(笑)
このあたりの確率・統計論の基礎はまたスキルを考えるシリーズで後述したいと思っています。
私自身、あまり確率得意ではないのでそれなりに“さわり”がイメージできるぐらいの感じで。。

これはまぁ、本質じゃない。
その正規分布とやらを持ってくれば何が嬉しいのか。
逆算ができるのですよ。
山のカタチをしているという事は、基本的には山の真ん中に値が集中する。
逆に言えば、山の裾野の低い部分の値はなかなか現れない。
この裾野の低い部分、これぐらい中心(=期待値)から離れている部分は、どれぐらいの確率で現れるのか、とかそういうのが逆算できちゃうのですよね。
その時に使うのが、期待値と標準偏差、という値。ここでは詳しくは触れません。
標準偏差、はイメージでは山の急激さ、険しさを表していると思ってください。
そういう値があるんだー、ってなもんで。

ここまでが予備知識。
「信頼区間」の中に例えば“80%”と指定すれば、山の山頂からどれぐらい離れたところの値ならば実現すると考えていいのかを考える、という事です。
横に「674726 ~ 1203524」というのが出てきましたね。
グラフの中のこの範囲の値が、実際にトライした80%で起こりうる範囲にあるという事です。
平たく言えば、80%の確率で期待できる総攻の振れ幅は大体67万~120万ぐらいだという事になります。この部隊ならば、5回突撃して4回は最低でも67万超えの総攻撃力を出すことができるという事をこれは示します。
期待値は、無限回繰り返した平均値、でしたよね?
スキルを考える② ~期待値とは~
今回のイメージは、期待値をボンヤリとボカすかわりに視野をその分広げた感じ。
信頼区間を小さくするにしたがって、だんだん期待値のすぐ近くの値しかとれなくなっていきます。
で、信頼区間を限りなくゼロに近づけていくと、範囲は期待値の一点に集約していくのです。
ところで、今回の例では剛撃+烈火パターンですよね?
烈火は代表的なコス依存の高火力スキル。発動率が悪くて、効果が大きいスキルです。
一方、それと対極にあるのが例えば、三段撃神速。LV10にすれば発動率は50%です。
武将そのほか全く同じ構成で、烈火を三段撃神速に置き換えたヒストグラムを書いてみます。
気持ち、全体的に少し山が高くなってまとまった感じしません?(笑)
こいつを信頼区間80%で見てみると、「695353 ~ 1120820」。
烈火の時よりも確かに範囲が小さくなっています。最低で67万→70万弱が80%で保証される代わりに、上側の境目は120万→112万とやはり落ちてますね。
烈火>神速というのが今のトレンドですが、なるほどという感じです。

以前のExcelシミュでは出来なかった部分をもう一歩進めてみました。
こういった感じの分析が画面を操作してできる、というのがプログラムのいいところですな^^

     ◆     □     ◆

最後に、これからの追加機能の予定について。。

・ データベースが最新じゃないのを直す^^;
→最近パソコン買い換えまして・・・買い換えた先にAccessが無かったという。。
9月の新武将がwikiで纏まった頃に、という言い訳で今のデータベースはやや古い。
(7月の新武将まで対応しているかな?)
・ 部隊スキル機能
・ 速度計算機機能

こんな感じ。。よろしくです。

36 件のコメント:

  1. え・っ・ち2012年9月6日 12:45

    きたあああああああああああああ

    返信削除
    返信
    1. 部隊スキルの対応、もうしばらくお待ちを~^^

      削除
  2. おお、使わせていただきます!
    これで部隊の防御力を分析したいと思います。
    しかし、すごすぎですww
    ありがとうございます^^

    返信削除
  3. 通りすがりのシーさん2012年9月7日 1:38

    素晴らしい!
    なんとなくこんなのが欲しいなーとずっと思ってました。

    あつかましいですが1点要望。。
    部隊の保存機能あるといいな~

    応援してます!

    返信削除
  4. モンぽこさん
    どもです〜
    有効活用して頂ければ作者としては無上の喜びです♪( ´▽`)
    これからもぼちぼちバージョンアップしていきますのでよろで〜す〜

    通りすがりのシーさん
    ある一定以上のレベルの部隊になると、スキルが発動するかどうかで火力が全然変わってきますし、期待値だけではなかなかわからないことが多くなってきますよね。
    期待値でナンボ、と考えるよりどれぐらいのラインの火力が安定して出せるか、という方が実際的ですしね〜
    部隊の保存機能、というのは、シミュレートした部隊の状態をそのままそっくり覚えておいて、ボタンひとつで再現出来る、みたいな感じですかね?
    ぼちぼちですが実装していきますね_φ( ̄ー ̄ )






    返信削除
    返信
    1. 通りすがりのシーさん2012年9月7日 21:21

      攻撃部隊は(ロマンが欲しいのでw)期待値を上げつつ標準偏差を大きく(=MAX値を大きく)、防御部隊は安定重視で期待値を上げつつ標準偏差を小さく、と頭の中で思ってたのでこういうグラフを作りたかったんですよね~Excelでやろうかとずっと思って早半年ww

      部隊の保存機能は仰る通り、
      入力した部隊の状態をそのままファイル名を指定して保存できて、
      読み込めれば嬉しいなーと思います。

      1軍、2軍・・・・みたいな感じで自分の部隊を保存しておいたりしたいなーと。

      削除
    2. おはようございます^^

      Excelでも、多分やれないことはないのでしょうが・・・
      ※Excelだと、正規分布の密度関数を直接求めてくれるNORMDIST関数とかがあるのでおそらくこのプログラムよりもやりやすいというのはある(笑)
      なかなか面倒ですよねw

      部隊の保存機能、戦闘シミュでやっていたような感じで実装することが出来そうです。今日帰ってきてからにでもUPします~

      削除
    3. 通りすがりのシーさん2012年9月9日 9:47

      部隊保存機能早速ありがとうございます!

      全部隊登録しちゃいましたw
      結果を利用して今後の防部隊のスキル育成優先順位づけ早速を考えました^^

      削除
    4. 役に立ってよかったです~
      登録した部隊データ、settingsフォルダ内のbutaiフォルダにINIファイルとして保存してあります。
      これを直接編集したり、受け渡ししたりもできますよ^^

      現在、おまけ的な機能ですがスピード計算機能を実装して、これで一通りおかしいところ、バクが無ければ安定板にしたいと思っています。

      削除
  5. 鉄砲の防御設定数値間違っていませんか?

    返信削除
    返信
    1. 確認してみたところ、データベースの兵科情報に間違いはありませんでした。
      内部の処理自体がおかしい可能性もありますが・・・
      調べてみますね^^;
      操作関係で言えば、もしかして攻撃/防御の切り替えをしていなかったり、とかはあり得たりするかもですが・・・どうでしょう?

      削除
    2. 原因発覚しました。
      おそらく、攻撃/防衛を切り替える前に武将設定を先にされた場合にはその武将設定をした段階の攻防で兵科の戦闘力で計算していた様子です><;
      こういう盲点になるところを教えて頂き助かります。。
      というか、明らかにプログラム側のおかしい点なのに操作を疑ってしまいすみませんでしたm(_ _)m
      訂正版UPします。

      削除
    3. いえいえ、再度試してみれば原因追求楽だったかもですね
      公開していただけるだけで非常にありがたく思っていますので^^

      削除
    4. 色々な場所に穴がある可能性、というのを考慮して、というのは難しいものですね><;
      シミュ作りは私のIXAライフの一部にもはやなってますので(笑)、これからもぼちぼちバージョンアップしていきます^^
      よろしくです。

      削除
  6. sさん
    指摘ありがとうございます。
    随分重大な穴ですね…早期発見感謝致します。
    現在出先で確認出来ないのですが、一度全兵科の設定数値があっているか等々確かめたいと思います(汗
    データ諸々はシミュレータ本体に同梱されているデータベースファイル『Busho.mdb』の中に記載してありますので、mdbファイルを開く事が出来る環境でしたら直接確認することができます。
    ("Heika"テーブルの中に兵科に関する情報がまとめてあります。)

    返信削除
  7. つかってみました。すごいです感動しました!ありがとうございます!

    返信削除
    返信
    1. コメントありがとうございます~
      そう言ってもらえると嬉しい! おかしいとことかあったら教えてください~

      削除
  8. 入力しないでいいのは凄い助かるーありがとうです!
    少し質問なのですが特・上杉景虎が入っていないのは仕様なのでしょうか?

    返信削除
    返信
    1. 8月・9月(もしかしたら7月もかな・・・^^;)の新武将・新スキルデータはデータベースファイル「Busho.mdb」を更新していないので入っていないのです><
      新しいパソに替えた
      →前はmdbいじれたのが、今はいじれなくなった
      →データベース部分の更新が止まってる・・・
      という状況でして。。どうせなので、9月の新武将・新スキルデータがwikiである程度揃ってきたら、古いパソ引っ張ってきて現在の最新データ全てを一括更新しようかと思ってます。。

      削除
    2. 1日に何回も細切れ更新になっちゃってるのがアレですが・・・^^;
      現時点までの全武将・スキルに対応完了しました~

      ※データのソースがixaのwikiなので、ここに更新されていないスキルのデータはありません。

      削除
  9. 素攻、期待値、マックス値が出るだけでも便利ですね。
    ステ振りのところを攻撃極振りとかすると、初期スキルがLV1にもどっちゃうみたいです。はじめにステ振りしといてスキルLV上げればいいんですけど、そのままの方が嬉しいかなと。
    追加スキルに同じスキルを付けた場合警告文とか欲しいです。いや無いほうがいいかな?

    返信削除
    返信
    1. コメントありです~ノ

      >ステ振りのところを攻撃極振りとかすると、初期スキルがLV1にもどっちゃう
      教えて頂きありがとうございます。
      部隊保存機能と共に修正しました^^

      >追加スキルに同じスキルを付けた場合警告文
      一括入力の時に被るのですね・・・何かいい方法があるか考えてみます

      削除
  10. 自分のPCはエクセルが2003のままなので、プログラム化されたのは
    とてもありがたいです。
    欲を言うなら、ウインドウの横幅、1024以下になりませんかね?
    どうもうちのモニタが小さいせいか、小隊長3のところが見切れてしまいます・・・

    返信削除
    返信
    1. うーむ・・・暫定処置として、
      画面サイズよりもウインドウ横幅が長い時は、下にスライドバー付けるようにしてみますね^^

      削除
  11. すげぇー頼もしいんですが・・・

    細川幽斎に数値を入れるとエラーになります。
    分析もエラーで落ちちゃいます。

    修正お願いいたします!

    返信削除
    返信
    1. 報告ありがとうございます!

      細川幽斎に数値を入れる・・・というのは、
      ランクやLVを変えて、ステ計算をする、という操作の部分ですね。
      一度洗ってみます。。
      あと、確認ですが細川幽斎「だけ」ダメなのでしょうか?
      私の元では普通に動いたので・・・
      出来れば、落ちる際に出てくるエラーメッセージみたいなやつが取れたら、コピペして載せてくださると助かりますm(_ _)m
      宜しくお願いします

      削除
  12. 初めまして!
    シミュレータを毎回使用させてもらっております。
    どれも便利すぎて、既にシミュレータなしではイクサできない体になっておりますw

    今回も便利なシミュレータですね。
    (部隊保存が地味ながらうれしい機能です)
    数値で確認できるだけでカードの選び方がまるわかり・・本当に素晴らしいものをありがとうございます。
    あまりに素晴らしいので、私のブログでも紹介させていただきたいと思ていますがよろしいでしょうか?
    どうぞ検討の程よろしくお願いします~

    返信削除
    返信
    1. ありがとうございます!!
      そう言って頂ければ・・・^^ノ

      今回、新たに部隊の行軍速度を出せる機能を追加しました。
      おまけみたいな位置付けではありますが・・・
      ブログでの紹介、歓迎であります! より多くの人に使ってもらえるのは嬉しいです!

      削除
    2. 快諾有難うございます!
      早速記事にさせていただきました~(私が理系に弱いのでハイドさんの文章を引用させていただいた部分もあります)
      簡単な紹介と、使用例(明日掲載予定)の2回に分けて魅力を伝えようと思います。
      もっと多くの人に使っていただきたいと思い、僭越ながら紹介させていただきました。
      新Ver.も早速いただきましたwありがとうございますーー

      削除
    3. いえいえ、こちらこそ広めてもらって感謝ですよ~^^
      やっぱりバグとかおかしい部分とか、エラーとかは人に使って貰って色々な状況を経験しないと分からない部分があるのですよね。。
      売り物のプログラムではそれじゃいかんので、そういう荒さがし部分(デバック)にかなりの労力をかけるのです。
      それをまぁ個人趣味でやってるという理由でてきとーにやってるので^^;
      ver1.21で、下の匿名さんの仰る落ちるというバグがどうなっているのか、それが解決していそうならば安定版としての正式公開としたいと思います。(β版、はテスト版、みたいなw)
      私の手元では再現しなかったのですが、おそらく私が気付いていない部分がまだあるような気はするのですよね・・・

      削除
  13. コピペします。
    ------------------------------------------------------------------
    Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

    Object reference not set to an instance of an object.
    ------------------------------------------------------------------
    部隊としては
    極-宮本武蔵
    極-佐々木小次郎
    特-草薙かさね
    特-細川幽斎

    ここで細川幽斎の兵とスキルを入力すると上記エラー表記がでます。

    またここでQuitをクリックし部隊計算まで行くと落ちます。

    ご確認およびご対応のほどよろしくお願いいたします。

    返信削除
    返信
    1. 報告ありがとです・・・
      怪しげな感じの場所はver1.2で変えてみました。
      エラーが出た時に、詳細、ボタンをクリックして、そこで何かダラダラと長いメッセージが出てくるのでそれをコピペして頂けるとどこが悪さしてるのかピンポイントで分かります。
      二度手間申し訳ないですが、宜しくお願いしますm(_ _)m

      削除
  14. レアリティ 武将 を入力後に指揮兵科を騎兵にすると落ちます
    それ以外では落ちませんが

    ************** JIT デバッグ **************
    Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
    またはコンピューター (machine.config) の構成ファイルの jitDebugging
    値を system.windows.forms セクションで設定しなければなりません。
    アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
    なりません。

    例:





    JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
    ハンドルされていない例外はすべてコンピューターに登録された
    JIT デバッガーに設定されなければなりません。

    返信削除
    返信
    1. 報告ありがとうございますm(_ _)m
      かなり重大な部分なのに、反応が遅くてすみません^^;;
      調べてみたところ、データベースの兵科情報テーブルが「騎兵」ではなく「騎馬兵」で登録していたので起こった不具合でした><
      データベースを修正し、別件でややこしくなりそうな部分を修正。
      訂正版を公開しました。
      重ね重ね、情報提供ありがとうございました!!

      削除
  15. はじめまして。
    ダウンロードさせていただきました。
    試してみます。ありがとうございました。

    返信削除
    返信
    1. はじめまして^^
      最近はシミュレータ改良に時間が取れるので、色々とこれまで足りていなかった部分を網羅していきたく! どもどもですーノ

      削除