ターン制バトルで学ぶオブジェクト指向(WinForms・Unityにつながる)
C# で クラス を学んだあと、多くの人が次の壁にぶつかります。
「クラスは書けるけど、どう使えばいいのかわからない」
このシリーズでは コンソール上のターン制バトル を題材に、オブジェクト指向の考え方を 動きのある形 で積み上げます。いきなり抽象クラスから入らず、重複に気づいてから整理する順番にしています。
前提: class の初見の場合は、クラス気づき学習シリーズで「まとめる」感覚を先に押さえるとスムーズです。画面付きで RPG を進めたい場合は、WinFormsでRPG入門と併読できます(本シリーズは コンソール中心 で、継承とポリモーフィズムにフォーカスします)。
シリーズ目次(読む順)
- 1人のキャラクター(クラスと
new) … 設計図と実体・プロパティ - 行動を持たせる(メソッドと「データ+処理」) … 振る舞いをクラスに載せる
- Warrior と Mage(重複に気づく) … 似た構造の並び立ち
Characterで共通化(abstractと継承) … 共通を親・違いを子に分ける- ターン制バトル(同じ型で扱う・ポリモーフィズム) …
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回 から順にどうぞ。