2023.08.04はじめに今回の記事では、クラスやオブジェクト指向を使って簡単なRPGをつくる演習編に入ります。ポイントを解説しながら、数回にわたって記事を掲載していきます。つまずきやすい部分(実際に筆者がつまずいた部分)を中心に、初心者にもわかりやすく順を追って説明していきます。前回までは「クラス」「インスタンス」を基本にしたオブジェクト指向の3要素「継承」「ポリモーフィズム」「カプセル化」について説明しました。今回は、クラスの機能を使って実際にプログラムを作成していきます。クラスを使って簡単なRPGを作ってみよう☆作りたいプログラムの仕様と大まかな流れについて決定する今回は作りたいRPGの仕様を決定し、そのうえでどのようにクラスの機能を活用していけるかを考えていきます。そのうえで、作業がしやすいようプログラムの流れを作成していきます。今回は、プレイヤーがランダムに出現するモンスターと戦うRPGを作成していきます。プレイヤーとモンスターのどちらかのHP(体力)がなくなるまで戦闘が続き、HPがなくなったほうが負けになるゲームになります。詳細は以下にまとめました。30のいずれか☆入力が不正の場合もう一度入力させる☆道中のテキストは自由クラスの機能をどこでどう活かすか考える今回はオブジェクト指向の考え方に沿ってプログラムを作ることを目標にするため、「クラス」や「インスタンス」、「継承」「ポリモーフィズム」「カプセル化」をどのような場合に活用していくかそれぞれ考えていきます。この時点で「この機能はここで使えそう?」と思った場合は、ぜひメモしておいてください。☆「クラス」と「インスタンス」クラスとインスタンスは、変数やメソッドをひとまとめにした鋳型を作成し、それをもとに実体をつくることでメソッドを呼び出したりすることができるものでした。今回のRPGでは、プレイヤーと敵キャラにそれぞれステータスや行動が関連しています。プレイヤーが攻撃する・防御することはプレイヤーにのみ関連する処理であるので、ステータスや行動をまとめてクラスにすることができそうです。実際に攻撃や防御を行う場合にメソッドを呼び出す必要があるので、インスタンスも作成します。いクラスと騎士クラスに「継承」を使ってみようプレイヤーと敵のクラスを作ったところで、継承について考えてみます。プレイヤーは「魔法使い」か「騎士」のどちらかを選べます。このとき、魔法使いと騎士では攻撃や防御での処理が少しずつ異なります。よって、まずはは基本となるプレイヤークラスを作っておき、それを継承してそれぞれ「魔法使いクラス」と「騎士クラス」を作成してみます。☆ポリモーフィズム・・・「ポリモーフィズム」で攻撃・防御メソッドを実装してみよう魔法使いクラスや騎士クラスを作成したら、それぞれの攻撃、防御メソッドを上書きして別の処理に変更していきます。このときメソッドをオーバーライドします。防御するとHPが5回復する騎士クラス・・・斬撃攻撃になり、20%の確率で攻撃ダメージが増える(20ダメージになる)が、20%の確率で攻撃が外れるこのとき、実際の処理はオーバーライドした「魔法攻撃」や「斬撃攻撃」になり効果が変わりますが、プレイヤーが「攻撃する」「防御する」という選択には変わりありません。これはポリモーフィズムの考え方を実現しているといえます。メソッドにアクセスできないようにする今回のRPGプログラムでは、特にメソッドを外部から変更する可能性がないため、完成後に確認作業を行うこととします。プログラムの全体の流れを考える今後プログラムの作成がしやすいように、プログラム全体の構成を考えていきます。名前の入力と職業選択が正しく行われた場合、魔法使いの場合と騎士の場合で分岐します。順番でターンが始まるどちらかのHPがなくなるまでは戦いが終わらないので、この部分はループになります。3プレイヤーターンで分岐させるプレイヤーは攻撃か防御の行動がとれるので、どちらを選ぶかによって処理が分岐します。これで大雑把なプログラムの構成ができました。これをもとに次回から細かい実装を行っていきます。まとめクラスのさまざまな機能を活かしたRPGを作成する場合、まず仕様を考えたうえでどのような部分でクラスが使えそうか?継承やオーバーライドを活用できるか?を考えていくとプログラムの幅が広がります。部分をどうクラスにするかを決定したら、プログラムの全体の流れを考えていくと、細かい処理を実装していく場合でも迷うことがありません。最初は分かりやすい部分をクラスにしてみて、よりコンパクトなプログラムを書けるように慣れていきましょう!(著者もクラスについて初心者です)次回は、各クラスとメソッドの作りこみについて説明していく予定です。今回の記事では、プログラムの「例外処理」について説明していきます。今回のブログでは、第1回「プログラミングって何?」で触れた「関数」について解説していきます。今回の記事は、実際にプログラムを作成する実践編になります。これまで学習した部分を生かしながら、つまずきやすい部分を中心に複数回にわたって解説していきます。今回の記事は、実際にプログラムを作成する実践編になります。これまで学習した部分を生かしながら、つまずきやすい部分(実際に筆者がつまずいた部分)を中心に複数回にわたって解説していきます。今回の記事では、クラスやオブジェクト指向を使って簡単なRPGをつくる演習を引き続き行います。ポイントを解説しながら、数回にわたって記事を掲載していきます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。最近のコメント表示できるコメントはありません。ほやほやSE日記.ホーム検索トップサイドバータイトルとURLをコピーしました。