Ryota Kondo

Ryota Kondo

2023/01/09

ポケモンタイプ相性のUMLクラス図を作りました

ポケモンで対戦をする際の大事な要素として、炎や水、電気などのタイプとそれらの相性があります。例えば電気タイプの攻撃を水タイプのポケモンが受けたときにはダメージが2倍になったり、炎タイプの攻撃を水タイプのポケモンが受けたときにはダメージが半減したりします。

対戦で勝つためにはこれらのタイプ相性を把握しておくのが良いのですが、タイプは18種類(ノーマル、炎、水、電気、草、氷、格闘、毒、地面、飛行、エスパー、虫、岩、ゴースト、ドラゴン、悪、鋼、フェアリー)もあり、タイプごとの組み合わせになる相性を覚えるのはなかなか大変です。

覚えやすくするためにタイプ相性を図にしたものもあります。代表的なものとしては下のようなマトリックス表です。

わかりやすくまとまっているのですが、私にはしっくりこなかったので、システムの設計や分析で使用するUML(統一モデリング言語)を使って、タイプ相性を図にしてみました。

【2023/5/13追記】

改良した図をこちらの記事「クラス図で作ったポケモンタイプ相性一覧まとめ」にまとめました。

UMLの中でどの種類の図を使うか

まず、複数あるUMLの図の中からどの図を使うかですが、クラス図を採用しました。採用した理由としてはマトリックス表からは見えづらい下の点を明確に表現したかったためです。

マトリックス表からは見えづらい点

  • 同じタイプ間でも攻めと受けは単純な表裏の関係にはなっていない。
    • 水タイプの攻撃を炎タイプのポケモンが受けたときはダメージが2倍で、炎タイプの攻撃を水タイプのポケモンが受けたときはダメージが半減
    • 電気タイプの攻撃を水タイプのポケモンが受けたときはダメージが2倍だが、水タイプの攻撃を電気タイプのポケモンが受けたときはダメージが等倍
  • タイプ一致の倍率付与はあるが攻めは技のタイプに起因し、受けはポケモン自身のタイプに起因する。

ポケモンタイプ相性のUMLクラス図

作成した図はこちらです。

ポケモンタイプ相性のUMLクラス図

図の説明

  • ポケモン自身をクラス、技を矢印で表現しています。
  • ポケットモンスター スカーレット・バイオレットに対応したタイプ相性です。
  • 攻めと受けの関係性は矢印で見るとわかりやすいです。
  • わかりやすさを優先したため、UMLの記法どおりになっていない部分があります。
  • 図はdiagrams.net(以前のdraw.io)を使って作成しています。
  • 図のファイルはこちらのGitHubで公開しています。印刷用に作成したPDF版もこちらにあります。

関連タグの記事

Ryota Kondo
Ryota Kondo

システムエンジニア・プログラマー|このブログサイトの運営もしており、思いついたことをまとめて記事を書いています💡