【S14最終レート1985(660位)】ガオカイサフゴ(レンタルあり)

どうも、おくおくです。 家事育児が忙しく記事の更新ができていなかったのですが、満足できる結果が残せたので、ポケモンランクバトルシングルのS14にて使った構築紹介をします。

また、剣盾時代にはエクセルを使って分析していましたが、SVではGoogleスプレッドシートを使って分析していますのでそのデータも掲載します。構築経緯等でスプレッドシートを参照しながら解説していますので、必要に応じてスプレッドシートを参照ください。

スプレッドシート

対戦補助スプレッドシート_第四版_S14おくおく公開用 - Google スプレッドシート

目次

使用構築、コンセプト

努力値、実数値
2月いっぱい公開しておく予定です。

コンセプト

構築経緯

基本軸の経緯

過去使用していたポケモンを含めつつ、新ポケモンを試していたところ、今まで通りBig6系統が強いと感じた(パーティ1~5)。前シーズンでHDランドロスが強かったので、威嚇持ちのガオガエンにチョッキを持たせたところ使用感が良かったので、前シーズン使っていた鉢巻カイリュー、ゴツメサフゴと合わせつつ、ガオガエンの補完枠を検討(パーティ6~14)。ガオガエンが重い水に対して強く出れる水タイプ・草タイプのポケモンを試していたが、草タイプは初手スカーフ水ウーラのとんぼ返り・水流連打の択がつらく、補完枠として不適であることが判明。また、全体的に足が遅かったので、高速アタッカーor先制技持ちポケモンの試行錯誤も実施し、ゴリランダー、スカーフラティオス、ブエナカミ、タケルライコ等を試したが良いポケモンが見つかっていなかった(パーティ6~16)。

ここまでで200戦ほどしていたが、ブリジュラス筆頭のステロ環境でガオガエンでサイクルするのは弱かったのかもしれないと感じ始めた。ただガオガエン、サフゴ、カイリューのタイプ相性の良さは実感していたので、対面的に動けるようにガオガエンをイーユイに変更(パーティ16,17)。パーティ17は勝率が低かったのだが、高速アタッカー枠にパオジアンを採用しており、パオジアンの圧でステロ撒きを呼ばないorステロ枠にテラスを強要できることがわかったので再度ガオガエンを採用しパオジアン、ガオガエンカイリュー、サーフゴーを軸にするパーティが完成した。

補完の経緯

受けルや毒菱展開に対して、強く出れる毒テラスうずしおアシレーヌを採用(パーティ14~)。相手視点はガオガエンの補完枠として見えるので、渦潮を警戒されにくかったのではないかと思っている。

また、構築単位でブリジュラスが重いので、ガチグマ暁を対策枠として活躍させることができた。地面枠としてとりあえず入れていただけだったのだが、ミラコ型に対するあくび、持久力ボディプレ型に対する毒テラス、頑丈型に対するしんくうは等、必要な技はそろっていると感じた。

個体解説

カイリュー

  • S:S4振りランドロス抜き
  • A:11n
  • HP:16n-1(ステロ被ダメ意識)

Sラインのみ調整意図あり。それ以外は、効率が良くなる数値があったのでそれを採用。ランドロスvsガオガエン対面でステルスロックを撒いてくるランドにカイリューを後出しし、アイススピナーで倒すという流れが頻繁にあった。

ゴースト、鋼がいない状態でのノマテラ神速が強かった。

サーフゴー

  • HP:奇数調整
  • B特化

HB特化。ガオガエンからの引き先、電磁波によりS操作(+しびれ)でスイーパー(主にカイリュー)の補助をする。初手の水ウーラをサーフゴーで受けるというのが最も多い使い方だった。スカーフが最も多かったので、水ウーラにはめっぽう強かった。ただし、初手とんぼ返りの場合に、炎オーガポンに引かれるケースが多く択+電磁波命中率の勝負になることがあった。水テラスをして電磁波を打つのだが、水テラス読みでパワーウィップを撃ち込まれることが何度かあった。ガオガエン引きもあり得るので、その選択は微妙なのではと思いつつ、水テラゴツメサフゴが重すぎてそれしか勝ち筋がなかったのだと思う。

ガオガエン

  • HP:奇数調整
  • A特化

対面性能高く、クッションや対面操作等も可能。叩き落とすでアイテム判定も可能と強い点が多かった。しんそくの通りが悪い、鋼、ゴーストに強いタイプなので、カイリューから入り、上記テラスを誘いガオガエンで倒すというケースも何度かあった。

ハバタクカミとの対面はすべて勝てたと思う。ブエナ型であればフレアドライブでワンパンできることがほとんど。メガネ型であれば叩き落とす→フレアドライブで倒せる。HPが1でも残っていたら、こだわり解除、ステロダメを耐えれるならいかくで利用できるのでなるべく残しておくのが良い。

とつげきチョッキ採用率は低いので、捨て台詞読み挑発をされることも多く、1ターンアドをとれるケースがあったのもよかった。

パオジアン

  • 意地っ張りAS。

ステロ撒きへの圧ポケモンガオガエンカイリューとステロの刺さりが良い構築なので、ステロ撒きが出てくることが多く、パオジアンが有利に動けるケースが多かった。聖なる剣はBの上がったブリジュラスへの打点として利用できるので採用していた。

草テラスは、ラグラージスイクン、水ウーラ、アシレーヌへの打点として利用できたのが良かった。

ガチグマ暁

  • こちらの記事の調整を採用。

【S13 最終22位(2135)】ツキとスッポン【ポケモンSV】 - ゆうがたのカルボナーラ教

特殊の高火力が欲しいとき、あくびで対面を流したいとき等に選出。毒菱改修もできるので、場合によっては改修枠として選出する場合もあり。

ブリジュラス、トドロクツキ、キラフロル等にだしていた。

アシレーヌ

渦潮でステロ撒き、毒菱要因をキャッチし、サイコノイズ(うるおいボイスで水タイプ)で回復を封じながら倒す。ディンルー、ドヒドイデコータスにはHPを削られることなく倒すことができた。晴れターンを枯らす目的もあるので、コータスをキャッチした場合は、バインドぎりぎりのターンで倒せるように気を付けた。

選出

選出一覧

選出数の多い選出について意図や動かし方の説明。具体的にどのようなパーティ時に選出しているかと勝敗に関してはスプレッドシートの「log」シートに記載があるのでそちらを確認ください。

パオジアンの刺さりが良いときに選出。格闘・鋼打点が飛んできそうな時の引き先にサフゴ、炎・鋼打点が飛んできそうなとき用にガエンを控える。ハバタクカミをパオ、サフゴ・ガオガエンで倒しつつほかのポケモンを削っておき、カイリューの神速圏内にいれてスイープというパターンが多かった。

添付図のパオ・サフゴ・カイリューで出した場合に炎打点が出された場合も、オーガポンであればつららで削ることが可能で、イーユイであれば素早さ判定後、聖なる剣で圧をかけられる。

  • ガエン・サフゴ・アタッカー(カイリューorパオorガチグマ)(緑色)

ガエン・サフゴでサイクルを回して、型判別、削りを入れた後にアタッカーを通す。添付図の通りガエン・サフゴは地面以外で相性補完が良い。アタッカーをカイリューにした場合、そこに飛んでくる地面技をカイリューで透かし、ガチグマ→けたぐり、ランドロス→アイススピナーでワンパンする。

  • 初手アシレ(青色)

ステルスロック、毒菱、晴れパ等で初手要因を渦潮でキャッチしたい場合に選出。ペリッパーやアロキュウはキャッチしてもトンボで逃げられたり、アンコール等されるのであまり有効ではないのは注意。

  • 初手サフゴ(紫色)

コノヨザル入り、グライオン入りの場合に選出。コノヨザルに対して初手電磁波で安定して型判別ができる。殴ってしまうと憤怒のこぶしの威力が上がるので、でんじは、じこさいせいで祟り目圏内まで入れ(かつ電磁波麻痺があればなおよし)、祟り目で倒す。

結果

最高レート1998から1敗したところで終了しました。

Special Thanks

  • 個体提供をしてくれたエキドナ様(A0色コレクレー)、ゼクス様(オシャボA0ガチグマ、C0パオジアン等)
  • 自動化スクリプトを提供してくださる自動化サーバーの皆様
  • 対戦補助スプレッドシート共同開発者のしゅみる様

あとがき

対戦補助スプレッドシートについて

記事中でも載せている対戦補助スプレッドシートは、下記ページの導入方法から誰でも導入可能です。使用方法については、2024年2月1日時点でマニュアル整理中ですのでお待ちください。テスター募集も近日中に行う予定で、テストしてくれる方には、導入補助、伝説準伝説ポケモンの提供をする予定です。

github.com

今期学んだこと

  • vanさんの記事

自分の構築の強さ、弱さの言語化をするためのフレームワークとして利用させていただきました。試しとして利用していただけなので、ダメージ層については未使用でしたが、今後努力値調整する際に、意識したいと思います。

note.com

  • おかのんさんのポケラジ

おかのんさんは、ポケモン対戦の言語化を丁寧に行なわれた実況動画をほぼ毎日投稿されている方です。半年前から視聴しているのですが、毎週月曜日は作業用BGMとしてラジオを公開されています。圧ポケと特殊な対策枠を1ポケモンに圧縮できるのがベスト、ミミズズみたいな1体で特定のポケモンを対策して枠を圧縮するのではなく、並びで対策して対応範囲が広いほうがベター等学びが多かったです。

www.youtube.com

【LINEBot】ポケモンの情報をLineで簡単に見れえるようにする

どうも、おくおくです。

Twitterにて報告して好評であったLINEBotに関してまとめた記事がなかったので作成しました。 LINEのQRコードと簡単な紹介を書いています。 用いた技術(Pythonのコードやサーバーの設定など)に関しても、後日記事にしたいと思っています。

1. ポケモンbot
こちらは、ポケモンの名前、タイプ、特性、種族値を出力してくれるbotです。
ポケモン名を入力すると情報一覧を返信してくれます。 登録名と異なる場合は、情報一覧を返してくれないのですが、クイックリプライという機能があり、似たポケモンの名前を出力してくれるのでそちらをクリックすることで情報一覧を返してくれます。

f:id:okuokuch:20220116144718p:plain
ポケモンbot使用例
f:id:okuokuch:20220116144341p:plain
ポケモンbotQRコード

2. S実数値bot
こちらは、S実数値を出力してくれるbotです。
少し使い方が難しいので、詳細は動画で説明しています。
基本はポケモン名を入力すると、無振り、準速、最速の素早さ実数値を表示してくれます。また、ポケモン名の後に改行して+1や-1などのランク補正を入れたり、実数値を入れることで素早さに補正を掛けた値も出力してくれます。さらに、ポケモン名の後に改行をして別のポケモン名を入れることで2匹以上のS実数値を比較することができます。

f:id:okuokuch:20220116145141p:plain
S実数値bot使用例
f:id:okuokuch:20220116145033p:plain
S実数値botQRコード
↓3分でS実数値botの使用方法を説明しています。

youtu.be

3. 採用率bot for シングル
こちらは、ポケモンHOMEの値を出力してくれるbotです。 ポケモンHOMEのデータに関しては、私が暇なときに更新しているだけなので、最新の情報ではありません。
このBotは完成品ではないので、QRコード載せていません。TwitterをさかのぼればQRコードがあるので使ってみたいって方はTwitterをさかのぼるか、おくおくまでご連絡ください。
有料のサーバーを立てれば定期的に更新できるものを作れるはずなので、趣味用にお金を稼ぐ手段が作れたら完成版として実装する予定です。

以上、簡単にはなりますが今まで作ってきたLINEBotの概要となります!
これからもどんどん面白いツール作っていくので、興味ある方はTwitterYouTubeのフォローお願いします。

Twitter:おくおく (@okuokuch)

twitter.com

YouTubeチャネル:

https://www.youtube.com/channel/UCZBTAdesZ9aJjSJ33RXy8bw

対戦補助エクセルver4.1_β版配布

どうも、おくおくです。
前回記事から3か月開いていました。。
応援コメントなどちょくちょく来るたびに、モチベが上がりつつプライベートも忙しくということで進んでおりませんでした。

ところが、今回は無事対戦補助エクセルver4.1のβ版を公開することになったので記事化させていただきます。
基本的にはバグなく使えると思うのですが、予想だにしないバグが時々あるので、β版という形です。
何かしらエラーが見つかりましたら、おくおくまでご連絡ください。

twitterなどで告知していたのですが、今回からエクセル自体にパスワードかけておりません。
シートの保護などかけていますが、自由に解除できる状態です。
意図せず変更してしまいエクセルがおかしくなるということもありますので使用する際はご注意ください。
VBAの部分にはパスワードかけています。そちらの方のパスワード知りたい方はご連絡ください。
一緒に開発してくれるor改良してくれる方募集中です。笑
↓のフォルダに対戦補助エクセルver4.1が入っています。シングル用とダブル用があります。
最新版はver4.2です!そちらをご使用ください
drive.google.com
ダブル用は作ったのですが、使ってはいないので、不具合が多いかもしれません。
何か見つかったらご連絡ください。

以下、各画面のスクショと簡単な説明です。

1.マイパーティ

こちらの画面で、自分のパーティのポケモン努力値などを記入します。こちらの値をもとにダメ計などが行われます。

2.選出画面
2.選出画面

こちらの選出画面で、相手の選出や自分の選出を選びます。選出に必要な情報をこの画面で見れるようにしています。

3.ステータス変化

ステータス変化を記入するシート。対戦中のダメ計に用いる。相手や自分の状況から、画像認識で読み込めるようにするかもしれない。

4.ダメ計
4.ダメ計

ダメ計結果を見るシート、マイパーティで設定した技や、相手からのダメ計はポケモンHOMEの使用率の技のダメ計をしている。

5.対戦記録

対戦記録をつけるシート、選出シートからこちらに転記されるようになっている。個々の記録をもとに色々分析ができるようにしている。
日時や順位などの情報も入れられるようにするかも。日時は簡単に入れれるが、順位やTNなどは画像認識する必要があるので、少し難易度が上がる。

6.対戦分析
6.対戦分析

対戦記録の結果をもとに分析をする。相手のポケモンに対する分析と、こちらの選出に対する分析ができるようになっている。


以上でおおよその説明となります!
この他にもいろいろなシートがあるのですが、上記にあげたシートをサポートする(ポケモン一覧、技一覧、ポケモンHOMEの内容一覧etc.)となっていますので、説明は割愛します。
使用法に関しては、各シートに記載しているのと、使用法を記入したシートがあるのでそちらをご覧ください。
ショートカットキーを色々設定しているので、そちらもご使用ください。(googleドライブを通してダウンロードしたときに設定が外れる可能性があるので、その場合はご連絡ください)
選出ポケモンの部分は画像認識も使えるのですが、そちらに関しては現時点(2021/9/3)で配布していません。
こちらに関しても整い次第告知するのでもう少々お待ちください。

それでは長文になりましたが、ここまでお読みいただきありがとうございました。
では、次回の更新をお楽しみにお待ちください。

対戦補助エクセルver4作成ログ~その1~

どうも、おくおくです。
最近ツイッターで、「対戦補助エクセルver3を大幅アップデートする予定」と宣言しています。どこを改良していくかというのは頭の中で考えていたり、思いついたらツイートしたりしていますが、忘備録として記事化しようと思います。
変更点に関しては最後にまとめているので、そちらが気になる人はラストまで飛ばしてください。

まずは、現状の対戦補助エクセルver3と分析用エクセルについてのまとめと改良予定です。

○対戦補助エクセルver3のシート一覧(普段非表示のものも含む)
・マイパーティ
 自分のパーティを登録するシート。記入が面倒なので、画像認識により自動記入できるツールを導入予定。
・pokemon_status
 ステータス表、この表からタイプや種族値などを取得している。変更はなし。
・選出ポケモン
 選出時に見る画面。マクロで相手ポケモン名を半自動記入できるが、それでも20秒はかかる。画像認識により相手ポケモンを記入できるようにする。
 ここを見て選出を選ぶので、このシートでポケモンHOMEのデータを見れるようにする。過去対戦記録データもこのシートで見れるようにする。
 このシートor別シートに類似構築検索機能を付ける予定。
 情報があふれるので、マクロで各項目の表示、非表示を選べるようにする。
・ダメージ計算
 ダメージの概算計算ができる。きちんとした計算ができるように修正するつもりだが、ver4では行わない?
メタモンダメージ計算
 メタモン用の計算表。竜王戦時に使えるかと思い追加した。あまり使う用途がなさそうなので削除予定
・対戦記録仮置き
 選出ポケモン画面から選出ポケモンなどをコピペするシート。コピペはマクロで行うようになっている。
 今までこの記録を分析するツールが別ブックだった。ver4では、同じブックに統合する
・選出できるくん
 お試しで作ったツール。使えないことが分かったので削除。
 対戦記録を集めて機械学習させることで選出AIを作れるかもしれないと思い模索中。
 もしそれが完成したら、選出できすぎくん、となり再登場予定。
・メタポケモン一覧
 選出ポケモンの半自動入力の際に現れるポケモンが記載されている。編集可能なので、各々カスタマイズ可。
・使用法&注意点
 使用説明書。長くて読まれないことも多いようなので、各シートにショートカットキーなど記載するようにする。
 確かに、ショートカットキー忘れることなどもあるのでそちらのほうがよさげ。
・変更ログ
 修正した際に記載。
・技、アイテム使用率一覧(普段非表示)
 ポケモンHOMEの値を記した表。このシートの値を読み取って、各シートで表示しているので、このシートを更新しないと古いデータを使い続けることになる。最近、ポケモンHOMEのデータをCSVするツールを開発、公開した。そちらを使うことで、各々ランクマ潜る前に最新のデータに更新できる。
 早く実装したい。
・技一覧(普段非表示)
 技一覧表。ダメージ計算時にこの表からデータを取得している。カタカナとひらがなが違ったりすると、値が取得できないのはこの表からデータを取得しているから。
・アイテム補正(普段非表示)
 いのちのたま、とつげきチョッキなどアイテムのデータがまとめられている表。
・性格補正(普段非表示)
 性格とステータス倍率をまとめた表。これをもとにステータス計算をしている。
・タイプ表(普段非表示)
 タイプ相性表。これをもとに、タイプ相性倍率の計算をしている。

○対戦記録解析ver3のシート一覧
・対戦記録テンプレ
 対戦補助エクセルの対戦記録仮置きと同じ。統合するので、これは削除。
・相手分析
 勝率や被選出率がまとめられる表。こちらは対戦補助エクセルの方に移行する。
 ウーラオスの仕様などマイナーチェンジを入れる。
 このデータを選出ポケモンシートに反映するようにする。
・選出分析
 どの選出をしたときに勝っているかが表示される。勝率の高い選出は、選出ポケモンシートに表示されるようにしてもよい?
・pokemon_status(普段非表示)
 対戦補助エクセルのものと同じなので削除。
・計算(普段非表示)
 選出分析の計算をする際に使用するシート。
 初手とポケモン1,2の順列でポケモン1,2は組合せであるので、それを選手分析の形に持っていくのに実は一苦労している。
 強引に計算しており、マクロの中身やこのシートの中身はなかなかに汚いので公開しない。笑

ver4で予定している変更点
●対戦補助エクセルと分析エクセルの統合
●選出ポケモンシートで見れる情報の変更、レイアウト変更
●画像認識ツールの導入(私用対戦補助エクセルでは導入済み)
ポケモンHOMEのデータ更新ツール配信
●分析ツールの最適化
●類似構築検索機能追加
●不必要な機能削除
●説明書の充実(各シートにショートカットキーを載せておくなど)
以上が主な改善点となります。

地道にバージョンアップしていきますので、気長にお待ちください。
では、また会える日を楽しみにしています。

twitterアカウント 「おくおく」 : https://twitter.com/okuokuch
メールアドレス:okuokuch@gmail.com

ポケモンHOMEの情報をエクセル,CSV形式出力

どうも、おくおくです。
最近は、 Pythonを使うことで対戦補助エクセルの機能性向上を目指し日々尽力しています。
今回ですが、対戦補助エクセルにも入っている「ポケモンHOMEのデータ」を「エクセル」に出力する方法が確立したのでそちらのご報告です。

とりあえず、物から紹介。Windowsならこれをダウンロードして使えばオッケーなはず!Macに関しては詳しくわからないのですが、pythonの中身をコピーして。多少修正してもらえば使えるはずです。
自分の別PCでダウンロード&使用したのですが、ウィルス対策ソフトで危険ですという表示が数回出ました。。
確かにデジタル署名など取ってないので盲目的に信頼してくださいとしか言えない状態です。
exeファイル使用するのが嫌であれば、下記で紹介しているpythonのコードを使ってもらえれば
対戦補助エクセルに必要なcsvは取得できるので、その対応をしてもらっても大丈夫です。
drive.google.com
こちらがexe化したものです。ダウンロードして起動させたら、ポケモンHOMEのjsonファイルとそれから必要な部分を切り取ってcsvとして出力してくれます。

続いて、中身に関してです。基本的には下記サイトに記されていることの合わせ技です。
retrorocket.biz
intellectual-curiosity.tokyo

ポケモンHOMEのAPIをたたいて、JSONファイル(ポケモンHOME内でまとめられている情報)を取得しています。↑のサイトを見るとわかるのですが、一つ目のJSONファイルには各シーズンやルールについて、この番号ですよという数字が決まっており、それを出力してくれます。
その情報をもとにもう一つのAPIをたたくことで、ポケモンの情報が出てきます。
以下がpyhonのコードの中身です。

import requests
import json
import pandas as pd
import sys
import os

#この部分は、EXE化するときに用いる部分。EXE内にjsonファイルからcsvに変換するのに使用するファイルが保存されている。
#そのファイルを読み出すための記述。
def resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)

#ここからが、一つ目のAPIをたたくための部分。pythonでたたくときは、headerとdataをここで指定する。
headers = {
    'accept': 'application/json, text/javascript, */*; q=0.01',
    'countrycode': '304',
    'authorization': 'Bearer',
    'langcode': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Mobile Safari/537.36',
    'content-type': 'application/json',
}

data = '{"soft":"Sw"}'
#↑で設定したheaderとdataを用いてAPIを叩いて得られたjsonファイルを保存している。requestはwebページから情報を取ってくるときに使用できる。
#別アプリで、ポケ徹さんからポケモンや技データを取得した際にもこのrequestを使っている。
response = requests.post('https://api.battle.pokemon-home.com/cbd/competition/rankmatch/list', headers=headers, data=data)
with open("pokemon.json","w",encoding="UTF-8") as f:
    f.write(response.text)

with open("pokemon.json", "r", encoding = "utf-8") as f:
  data = json.load(f)["list"]

# jsonファイルからタームごとに必要な情報だけを配列にまとめる
terms = []
for season in data:
  for id in data[season]:
    terms.append({"id" : id, "season" : data[season][id]["season"], "rule" : data[season][id]["rule"], "rst" : data[season][id]["rst"], "ts1" : data[season][id]["ts1"], "ts2" : data[season][id]["ts2"]})

term = terms[0]
 # terms[0]は最新シーズンのシングルバトルの詳細。対戦環境の取得。
id = str(term["id"])
rst = str(term["rst"])
ts1 = str(term["ts1"])
ts2 = str(term["ts2"])

#1つ目のjsonファイルから得た情報を用いて、ポケモンのデータのまとまったjsonファイルを取得する。
#5つに分かれているので5つ分取得保存。
for x in range(1,6):
    adress = "https://resource.pokemon-home.com/battledata/ranking/"+id+"/"+rst+"/"+ts2+"/pdetail-"+str(x)
    headers = {
        'user-agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Mobile Safari/537.36',
        'content-type': 'application/json',
    }

    response = requests.get(adress, headers=headers)
    with open("pokemons_file"+str(x)+".json","w",encoding="UTF-8") as f:
        f.write(response.text)

#↑で得られたjsonファイルは技名やポケモン名、アイテム名が番号で記入されている
#技id1は「はたく」、アイテムid1は「マスターボール」など
#これらのidと技名を変換する表を読み込んでる。適当に作ったのでencodingなど違う。
#これら表がほしければご連絡ください。自分で作ってもらってもOKです。
move_df = pd.read_csv(resource_path("move_id.csv"),encoding="shift-jis")
poke_df = pd.read_csv(resource_path("poke_id.csv"), encoding="UTF-8")
item_df = pd.read_csv(resource_path("item_id.csv"),encoding="shift-jis")

#jsonファイルの情報をpandasのデータファイルに保存している。
#jsonファイルの中身を見てもらえればわかるが、ポケモンNo.→リージョンフォーム→「temoti」→[waza]or[item]という形に分かれている。
#それらを取得できるように記述している。
#CSVから対戦補助エクセルに移す都合上、技用のものとアイテム用のものを分けて保存している。
Home_poke =pd.DataFrame()
Home_poke2 = pd.DataFrame()
for y in range(1,6):
    with open("pokemons_file"+str(y)+".json","r") as f:
        json_read = json.load(f)
        for x in json_read:
            id = poke_df[poke_df["id"]==int(x)]
            for y in json_read[x]:
                list=[]
                list2=[]
                name = id[id["リージョン"]==int(y)]
                list.append(name.iloc[0,3])
                list2.append(name.iloc[0,3])
                for z in json_read[x][y]["temoti"]["waza"]:
                    move = move_df[move_df["id"]==int(z["id"])]
                    list.append(move.iloc[0,2])
                    list.append(z["val"])
                Home_poke = Home_poke.append([list])
                for z in json_read[x][y]["temoti"]["motimono"]:
                    item = item_df[item_df["id"]==int(z["id"])]
                    list2.append(item.iloc[0,2])
                    list2.append(z["val"])
                Home_poke2 = Home_poke2.append([list2])

            
#それぞれのデータフレームの列名を名付けて出力。
Home_poke.columns = ["ポケモン名","技1","割合1","技2","割合2","技3","割合3","技4","割合4","技5","割合5","技6","割合6","技7","割合7","技8","割合8","技9","割合9","技10","割合10"]
Home_poke.to_csv("pokeHome_move.csv",encoding="shift-jis")
Home_poke2.columns = ["ポケモン名","アイテム1","割合1","アイテム2","割合2","アイテム3","割合3","アイテム4","割合4","アイテム5","割合5","アイテム6","割合6","アイテム7","割合7","アイテム8","割合8","アイテム9","割合9","アイテム10","割合10"]
Home_poke2.to_csv("pokeHome_item.csv",encoding="shift-jis")

↑のコードでは「idと技名、アイテム名、ポケモン名を変換するcsvファイル」を外部から読み込んでいます。
それを作って読み込めば、後は上記コードのコピペで動くはずです!
jsonファイルやcsvファイルが出力されるので、そちらを対戦補助エクセルにコピペすることで最新のポケモンHOMEの結果をエクセル上で見ながら対戦ができます。エクセルへのコピーに関しては対戦補助エクセルにマクロを作成し、ワンクリックで行えるようにする予定です。

では、本日の記事はここまでとなります。
対戦補助エクセルver4では今回紹介したポケモンHOMEの情報の更新機能のほかに、画像認識機能も付け加える予定です。
続報は気長にお待ちいただければと思います。
では、また会える日を楽しみにしています!

対戦記録分析エクセルの概要紹介

どうも、おくおくです。

最近記事を公開していなかったのですが、裏で活動してtwitter等で報告していたのでそちらをまとめた記事となります。

以前よりエクセルツールを公開していたのですが、エクセルの強みとして「データ分析が簡単にできる」点だなとうこと再認識してきたので、公開しているツールをまとめてみました。

 

対戦補助エクセルver3.1

drive.google.com

↑の対戦補助エクセルver3.1ですがパスワードがかかっています。ver1.1を使用してみて、使ってみたいとなったら、twitterやメールなどでご連絡いただければパスワードお渡しします。

drive.google.com

対戦記録

drive.google.com

反省用エクセル

drive.google.com

これらの詳細の使い方は、動画にもまとめているので詳しく知りたい方はそちらもご覧ください。エクセル内にもメモ書きをしているので、使用法をよく読んで使っていただければと思います。

別記事で使用法を詳細にした記事も書こうと思っています。(2021/6/12現在)

youtu.be

 

この記事では以下


に、エクセルでどのような解析ができるかを画像で紹介していきます。

f:id:okuokuch:20210612110143p:plain

対戦時画面

こちらが対戦時の画面になります。半自動で相手のポケモンを記入できるようになっているので、エクセルの記入が苦手でも相手のポケモン名を記録することが簡単にできます。また、こちらに関しては、画像認識機能も取り付ける予定で、おおよそのプログラムは出来たので、完成したら公開予定です。

 

f:id:okuokuch:20210612110357p:plain

対戦記録

こちらが対戦記録表となります。先ほどのシートで記入したポケモン名に関して、ボタンを押すことでこちらに転記されるようになっています。こちらの画面では相手と自分の選出、勝率を計算します。

 

f:id:okuokuch:20210612110522p:plain

被選出率、勝率分析

そしてこちらが、選出記録から相手のポケモンに対して、どのような勝率か、またどのようなポケモンが選出されやすいかを分析する画面になります。先ほどまとめたシートより、自動でポケモン名を検出して数値として出力してくれます。

これを見ることで、相手の選出予想がしやすくなりますね。

 

f:id:okuokuch:20210612110722p:plain

選出ポケモンと勝率の分析

最後に、こちらが自分の選出したポケモンと勝率のまとめとなります。初手にどのポケモンを置いたら勝率が高いか、どのポケモンを選出した時に勝率が高いor低いかが見て取れます。

 

f:id:okuokuch:20210612110924p:plain

反省メモ

最後が反省メモ記入エクセルとなります。こちらも自動で自分と相手の選出を転記できるようにしています。毎試合反省メモを取ることで、もう一度自分のパーティを見直すことができます!

 

さて、ここまで紹介してきたのが具体的なエクセルツールの中身となります。他にも機能があるのですが、そちらよりも上記で紹介した分析系のツールがエクセルの強みだと思いますので、そちらをピックアップして紹介しました。

もし興味を持った方はぜひ使用してみて下さい。

では新たなツール開発ができましたらまたブログかSNSで発信していきますので、気長に続報をお待ちください。

 

 

【新企画】プレイングのチャート化ツール作成~コンセプト&お試し試合~

どうも、おくおくです。

ここ1か月ちょっとの間、お仕事と私生活どちらも忙しかったのでエクセルも動画も記事もポケモンもあまりできてませんでした。

ネット環境が整っていないのもありなかなか難しい状態だったのですが、だからこそ通勤時間などで色々考えていたところふとこんなことを思いつきました。

ポケモン対戦って選択肢たたかうのとポケモン引くのとで10択ぐらいしかないよな。」この選択肢をツール作って絞れるんじゃね?

ということで、【プレイングチャート化】というのをツールとして作ってみようと思いました。

具体的に最初に思いついたのは、質問に答えていくとある一つの選択肢がおすすめされるというものでした。しかしながら、さすがにポケモン対戦の思考回路はなかなか複雑でそれは作れそうにありませんでした。ということで今回作ってみたのはこんな感じです。↓

f:id:okuokuch:20210401130043j:plain

プレイングチャート化のイメージ

こんな感じでYes/Noで質問に答えていくと、選ぶべき行動「ポイント化」されて出てくるというものです。

エクセルの中身はこんな感じ。

f:id:okuokuch:20210401130423j:plain

エクセルの中身1

複数の質問プレイングの選択肢を用意。質問にYes/Noで答えた際、その質問につながるプレイングに対して係数をかけていきます。初期値は1で、質問の答えに対応する係数をかけ合わせていくことで最終的なポイントが決まります。

例えば、「補助技が有効?」の質問にYesと答えた場合は「補助技を使う」というプレイングに1が掛けられます。もしNoと答えた場合は0が掛けられます。

これをすべての質問に対して行うことで、最終的なポイントが以下のような表になります。

f:id:okuokuch:20210401130905j:plain

プレイングのポイント表

この表のバーが一番長いものがおすすめの選択肢ということですね!現状は補助技が有効?などとプレイングの選択肢に直結するような質問を入れています。。本当は、この辺りを対戦補助エクセルなどを使って判別できるようになればいいのですが、まだお試しということでご容赦ください。これを使った試合は以下の動画となります。ご覧ください。

youtu.be

とりあえず試合自体は運勝ちしましたが、実際使えるかどうかという点ですね。まだまだ試作版のため今後使えるようになるかは現状わかりませんね。とりあえず、反省点がたくさんあることはわかりました(笑)

以下反省点です。

【1.選択肢に答える時間がない,めんどくさい

今回作ったツールでは、毎回すべての質問に答えないと表が更新されない仕様でした。これは大問題でしたね。動画中このツールを使っていない場面がありました。。(笑)同じ対面や一か所だけ変えれば十分な時もよくあります。今回のように質問が出るのではなく、質問をエクセルのシートにまとめておき、変更の必要がある部分のみ回答を選択式で答えるシステムにすればこの記入の手間は省けますね。次回verでは改善しておきます。

また、最終的にですが「先制しているかどうか(Sの判断)」「確1(現在のHPで)とれるか取れないか」対戦補助エクセルと絡めることで自動で判断」できますね!ということでここは自動化できそうです。

【2.そもそもこの質問プレイング係数正しい?

すみません、これに関しては私が適当に作ってみたものなので正しいかどうかわかりません。むしろ私は全然ポケモンがうまくないので、間違っている可能性が高いです。

ポケモン強者の皆様、修正に関するお力添えしていただけると助かります。m(_ _)m

 

では今回の記事はここまでとなります。

もっとポケモンうまくなれるよう頑張るのとツール開発も頑張りますのでこれからも応援していただけると幸いです。

では、次回会える日を楽しみにしています^^