技構成チェッカーを作る その1
はじめに
今回からは対面性能を重視した技構成について考えます.
技を構成する際の基本として,まずはタイプ一致技を採用すると思います.
これで単タイプであれば1つ 複合タイプであれば2つの技枠が埋まります.
次に採用した技を半減以下で受けられてしまう敵を想定し,1つ または 2つの技を選択します.
だいたいのアタッカーが3つ または 4つの攻撃技を持っていると思います.
本来であれば仮想敵を用意し,そのポケモンに対応できるように考えるのでしょうが,簡単にタイプだけを考えます.
技構成チェッカーとして今回は技構成を入力すると,相性の悪いタイプを返すプログラムを作成します.
作り方
入力された技構成に対して,どの技も半減以下で受けられてしまうタイプがあれば,それを返すプログラムを作ります.
- タイプ相性を二次元配列で表現する
タイプ相性を二次元配列で表現します.具体的にはtype_array[type_attack][type_guard]が「type_attackの技をtype_guardのポケモンに打った場合の倍率」になるようにします.
複合タイプに対してはtype_array[type_attack][type_guard1] * type_array[type_attack][type_guard2]で倍率が出ます.
すべてのポケモンが複合タイプであるとみなすために18タイプにプラスして全ての攻撃を等倍で受けるタイプを仮想的に追加し,(19,19)の二次元配列とします.
- 防御側のすべてのタイプに対してループを回して相性を確かめる
防御側の全てのタイプ171通りに対して,相性を確かめます.
持っている技から type_array[type_attack][type_guard1] * type_array[type_attack][type_guard2]が最大になるものを相性として採用します.
半減以下で受けられてしまった場合は相性の悪いタイプとして記録します.
- 全ての技を半減以下で受けられてしまうタイプを出力する
攻撃側の視点でしか考えていないためこれだけでは問題があるのですが,とりあえず作ってみます.
単タイプだけを考えた時の苦手なタイプ 得意なタイプも表示されたほうが便利だったのでついでに表示するようにしています.
技構成チェッカー その1
技構成を入力してください. 変化技は技無しとしてください.
技タイプ1
技タイプ2
技タイプ3
技タイプ4
おわりに
今回作成した技構成チェッカーは相手からの攻撃は考慮していないため,タイプ相性というよりかは純粋に攻撃範囲の広さを調べるようなものになっています.
次回は防御側からの攻撃も考慮してタイプ相性を返すように改良します.