技のデバッグ
ポケモンの技をデバッグするとして、チェックすべき要素をリストアップしてみる。
とりあえず、体当たりみたいな普通の攻撃技としよう。
- 双方の能力値(999?1024?6×2通り)
- 双方の残りHP((999×1000×1997÷6)2通り)
- 双方の能力増減ランク(68×2通り)
- 双方のタイプ((17×18)2通りよりはもっと少ない)
- 双方の特性(175?2通り)
- 双方の持ち物(?通り)
- 双方の状態(62通り)
- 双方の重さ(草結びの威力区分で考えると62通り)
- 双方の場(25×2×32通り)もっとあるかも
- リフレクター
- 光の壁
- 追い風
- ステルスロック
- 毒菱
- 撒き菱
- 双方のもろもろのステータス(215×2×32通り)もっとあるかも
- 気合だめ
- 身代わり
- 黒いまなざし系
- 呪い
- 宿木の種
- ロックオン系
- 根を張る
- 泥遊び
- 水遊び
- 充電
- 差し押さえ
- 回復封じ
- 叩き落とす
- 白い霧
- 小さくなる
- 蓄える
- 天気+トリックルーム(4×2通り)
- どちらが先行か
- 技を受ける側の行動
- 技の並び方
- 対戦ルール
- 対戦する場所
この組み合わせを全部やるとかまず無理。途中から何通りあるか考えるのが面倒になってきたし…
しかも、バグが出ないか1回試せばいいわけじゃなくて、威力や命中率や効果が仕様通りかチェックしないといけない。つまりひとつのパターンに対して何回も試すことになる。これを怠ると、金銀のプレゼントのようなバグが入ってしまう。
全部を試すことはできないから、ある程度省略することになるだろうけど、その中にバグの要因が無いという保証はないのだ。事実、追い討ちと無関係に見える天候がバグの要因になっている。
実際のところプロのデバッガーさんはどの程度チェックするんだろう。もしかしたらまだ見ぬバグがあるかもしれないよね。