ファクトリー
OneEnemyPredictorの各再帰ステップで随時スケジュールをチェックするようにしてみたところ随分速くなりました。 これで前回の記事のダム問題はもう用なしとなってしまいました…。100個のランダムなseedで実行してみて最悪時間が3.86秒となりました。入力は…
全ての選出と交換に渡る全ての敵の組み合わせを計算 その8 ダム問題 - oupoの日記 ダムがいくつかあり、グループAとグループBに分かれている。 水道局がいくつかあり、各水道局はグループA, グループBそれぞれ1つずつのダムとつながっている。 グループA, B…
http://oupo.github.io/factory-predictor/ 樹形図へのビジュアライズをしてみたにゃん。うーむ。面白みがないなあ
http://oupo.github.io/factory-predictor/simple.html ソースコード: https://github.com/oupo/factory-predictor/tree/master/ 性格値の消費や1戦ごとの消費などを考慮して実際の結果に合わせた。 また、結果をアイコン画像で表示するようにした。画像はve…
GUIのプログラムを作るため、JavaScriptに移植しました。http://oupo.github.io/factory-predictor/simple.htmlソースコード: https://github.com/oupo/factory-predictor/tree/master/js-version (追記: 4/10) IEの8以下には対応していません。 今はこんな…
アイテムと種族による衝突判定がなぜ難しいかって推移律が成り立たないからだよなー。…ん、あれ?ちょっと待って。出てくる範囲に同じ種族が複数ないという前提なら、推移律成り立つじゃん。衝突することはアイテムが一致することと同値じゃないか!っていう…
衝突判定がIDのみによる場合は、結果がちょうど20件になるのは当たり前だよな、と気づきました。 乱数列にははじめから重複がないと仮定してもよくて、その上では「1件目の採用の前に何件スキップしたか」「1件目と2件目の間に何件スキップしたか」「2件目と…
ナイーブ版を実装して結果を比較した後はもともとこういう記事を書くつもりでした。しかしナイーブ版による結果が予想外なものだったので予定が崩れました。 次はどうしよう。 ダム問題の貪欲法による解法を用いたこの1戦分の敵の組み合わせを出力するプログ…
ナイーブ版を実装してみて、1つ前のプログラムによる結果がナイーブ版による結果を全て含んでいることを確認してみたところ...ナイーブ版による結果が毎回20件になるという不思議なことが起こりました。
ダム問題について考えていたところ、そういや1つの敵のエントリーの決定範囲には同じ種族が複数存在しないことが利用できるんじゃないかと思いつきました。 つまり、ダム問題においては、「グループAの各ダムとつながっている水道局はそれぞれ高々1個」とし…
前のダム問題はカバーできる水道局の個数についての貪欲法ではうまくいかないことを確認しました。
考察めも。skippedが互いに衝突しない6個のエントリーである状況を考える。skippedの各エントリーはplayersと衝突する。ここでskippedの6つの種族のうちplayersとダブるものが2つ以下だったとしよう。すると、それ以外の4つはすべてアイテムによる衝突となり…
長い間放置していたけれど久しぶりに手をつけました。だいぶ忘れているのでまずはどういう状況だったか振り返るところから。復習メモ: 敵の手持ちを1体1体決めていくわけだが、プレイヤーの手持ちと衝突するかどうかが問題になる。プレイヤーの手持ちは未確…
こういう問題が解ければ目的の問題は解けるんじゃないかしら。 ダムがいくつかあり、グループAとグループBに分かれている。 水道局がいくつかあり、各水道局はグループA, グループBそれぞれ1つずつのダムとつながっている。 グループA, Bそれぞれから3つずつ…
選り分けを実装した。エントリーの総数を30, 対戦回数を4としたときナイーブ版と100個のseedで全て同じ結果になることを確認した。 ソースコード: https://github.com/oupo/factory-predictor/tree/master/simplified-version そういうわけで、 エントリーの…
前回の記事で書いた貪欲法の詳細について書きます。現在位置から先のアイテムaを規制しているゲートの番号の最小値のことをaのcaughtと呼ぶことにします。 ただしそのようなゲートがない場合はN-1を表すことにします(ゲートの番号の最大値がN-2なので)。ま…
まだ仕上がっていませんが、正しい結果かどうかの選り分けはなんとかうまくいきそうです。 選り分けは次のような問題に変換して考えることにしました。 以下のように並んだ地図がある。 shop 0, gate 0, shop 1, gate 1, ..., shop N-2, gate N-2, end 旅人…
エントリーの衝突判定が種族とアイテムの二つあるのは複雑なので、衝突判定はエントリーのIDだけによるものとする という設定はそのままで、複数回の戦闘と戦闘ごとの交換を設定に入れて作ってみた。実際にはありえない結果も混じる出力を出すプログラムを作…
ずうっと前から構想していたのだけれど、バトルファクトリーで選出や交換で変わってくる7戦分の敵のパーティの全ての組み合わせを計算するプログラムを作りたいなあと考えていた。2010/2/22頃にCで愚直に全通り(6C3 * 10^5)試すプログラムを書いたのだけれど…
バトルファクトリーの乱数調整ツールを公開しました。 バトルファクトリー乱数調整ツール 最初の6匹に狙ったポケモンを出すためのツールです。 HGSS限定です。プラチナではポケギアがないので失敗しないように調整するのは多分無理だと思います。 ポケモン1,…
本来、ボーナスの選択をするとテキストエリアのそのポケモンの行の後ろに「 b」がつきます。決定ボタンを押したときにはボーナスかどうかの判定はその「 b」がついているかどうかで行っているので下に出てくるボーナスの選択は見ていません。 IEでポケモン名…
2月19日2時43分に8周目以降対応の更新をしました。ですが、そのときの更新にバグが含まれていて、本来よりランクが高いトレーナーが出てくる状態でした。 2月19日16時48分にバグは修正しました。 追記 (2010-02-20T03:00:40+09:00) まだ直ってなかったので再…
ちょうさ・ぶんせきマシンでの6匹の名前と親ID入力について説明します 6匹の名前を入力 まず6匹の名前を順番どおりに入力します ローマ字でなくてもかなで入力してもよいですが、ローマ字の方がいちいちEnterを押さずにすむのでオススメです。 1匹目の親IDを…
プラチナ対応とLv50、オープンレベルともに7周目まで対応。どうぞご利用ください。最初の6匹のランク8以降は全部 950 - (rand % 328) だと思ってたんだけどLv50、オープンともに7周目のボーナスが 950 - (rand % 600) だったのでびっくりした。このことにつ…
トレーナー決定後の消費が解明したので更新。 トレーナー候補を必要最低限しか表示しないように 6匹決定時のseedだけでなく、トレーナー決定時のseedでも入力できるように トレーナー候補が一つも見つからなくても動くように TODO リファクタリング済 プラチ…
ランク 周とは別にランクという概念を導入する。 「2周目では6戦目までは1周目と2周目のトレーナー、7戦目は3周目トレーナーが登場する」より「2周目では6戦目まではランク1とランク2のトレーナー、7戦目はランク3のトレーナーが登場する」と書いた方が分か…
トレーナー決定後に不定個数の乱数消費があってどういうものか全く分からなかったのだけど今解明できた!やったー! トレーナー決定後にその7人と重複しないようにまた7人分のトレーナーを決定する。その消費量が一致する。 こういうことでした。多分マルチ…
ちゃんと確認したわけではないので間違っているかもちゃんと確認しましたA = Lv50での4周目ポケ、オープンレベルでの1周目ポケ B = 準伝説と Lv50での7周目ポケ、オープンレベルでの4周目ポケ 銀ネジキ(21戦目) プラチナ HGSS Lv50 A A 変更なし オープンレ…
PM-DP解析スレ6 125 :名無しさん@お腹いっぱい。:2009/01/28(水) 01:58:56 ID:7PBwyGH/ ネジキが言ってくる数字は0〜65535の乱数を90で割った余りに10を足したものかもしれない 3周目の記録のメモを見てみたところ、見事に全9件とも一致していた。 決定さ…
ちょうさ・ぶんせきマシン オープンレベル4周目に対応するにあたって、最初の6匹のそれぞれのポケが「どの周の型であり、更にボーナスポケかどうか」を指定するためのUIはどうするかを悩んだが、以下のようにしてみた。 このフォームは上の6匹入力のテキスト…