学習記事一覧 · ターン制OOP入門

ターン制バトルで学ぶオブジェクト指向(WinForms・Unityにつながる)

C# で クラス を学んだあと、多くの人が次の壁にぶつかります。

「クラスは書けるけど、どう使えばいいのかわからない」

このシリーズでは コンソール上のターン制バトル を題材に、オブジェクト指向の考え方を 動きのある形 で積み上げます。いきなり抽象クラスから入らず、重複に気づいてから整理する順番にしています。

前提: class の初見の場合は、クラス気づき学習シリーズで「まとめる」感覚を先に押さえるとスムーズです。画面付きで RPG を進めたい場合は、WinFormsでRPG入門と併読できます(本シリーズは コンソール中心 で、継承とポリモーフィズムにフォーカスします)。


シリーズ目次(読む順)

  1. 1人のキャラクター(クラスと new … 設計図と実体・プロパティ
  2. 行動を持たせる(メソッドと「データ+処理」) … 振る舞いをクラスに載せる
  3. Warrior と Mage(重複に気づく) … 似た構造の並び立ち
  4. Character で共通化(abstract と継承) … 共通を親・違いを子に分ける
  5. ターン制バトル(同じ型で扱う・ポリモーフィズム)Character[]GetPower() の意味

各回の読み方(授業向け)

見出しのイメージ 内容
今回の最小ゴール その回だけで実行できるコードまで到達
前回からの差分 新しく足した概念だけを意識する
WinForms / Unity での当たり所 ロジックの置き場のイメージ(画面は別)

WinForms・Unityとのつながり(全体像)

要素 本シリーズ(コンソール) WinForms(イメージ) Unity(イメージ)
キャラ型 Character / 派生クラス Player / 敵クラス コンポーネント・データ
攻撃力など GetPower() など モデルのメソッド スキル計算・ステータス
進行 while でターン ボタン Click で1ターン Update / UI イベント
表示 Console.WriteLine Label 更新 UI / デバッグログ

設計(データとルール)は近い。違いは主に「表示」と「入力の取り方」 と捉えると、あとから WinForms や Unity に載せ替えやすくなります。


次のステップ

内容 記事・シリーズ
List と foreach クラス気づき学習シリーズ
WinForms で RPG WinFormsでRPG入門
Unity の入口 Unity入門シリーズ

まとめ

  • クラス は「データ+処理」のまとまりとして育てていく
  • 共通部分 は親クラスに、違う部分 は子クラスに分ける
  • Character として同じ呼び方で、中身が変わるのが ポリモーフィズム

この3つが腹に落ちれば、WinForms のモデルや Unity のスクリプト設計にもそのままつながります。はじめての方は 第1回 から順にどうぞ。