50歳から自分の好きな職業に簡単に転職できるの? ここは「がっちゃん 」が実際に体験した転職への道を記録するブログである

Javaで「モンスターとプレイヤーがバトルする」プログラムを作成:後編

どうも! 職業訓練生のがっちゃんです!

 50歳にして、長期人材育成「情報セキュリティ管理者資格」2年コースを絶賛受講中です!

 今回は、「Javaでモンスターとプレイヤーがバトルする」プログラムを作成する:その1」の続きの授業を書いていきたいと思います。いきなりここからですと、チンプンカンプンになっちゃうかもですので、「その1」の方もご覧いただければと思います!

6:モンスターを個別に設定

 今回は、「Battle.java」のモンスターの召喚方法を変更、モンスターがやられたときのコメントをモンスターごとに違うようにします。この間の続きのプログラムを触っていきますが「Character.java」「Player.java」に変更はありません。「Battle.java」は、モンスターを個別で設定していたところを、それぞれのクラスから召喚するように変更しただけです。「Monster.java」は、モンスターがやっつけられたときの文字出力箇所をコメントアウトし、「各モンスター.java」で設定するようにしました。

各モンスタークラスの新規作成方法

 「Bat.java」「Wolf.java」「Franken.java」「Kaibutsukun.java」「Dorakyura.java」5種類のモンスタークラスを新規作成しますが、以下の方法を使えば、ほぼ自動的に骨子を作成してくれます。いつものように、「battle6」パッケージをクリックし右クリックで「新規」→「クラス」を選択します。以下の「新規Javaクラス」ウインドウが表示されますので「スーパークラス」蘭の右側にある「参照」ボタンを押し「スーパークラスの選択」で「Monster-battle6-OOP/src」を選択し「OK」ボタンをクリックします。

 以下のように「スーパークラス」欄が「battle6.Monster」に変わっています。あとは「名前」欄にモンスターの名称を入力、「どのメソッドスタブを作成しますか?」欄では「スーパークラスからのコンストラクター」と「継承された抽象メソッド」を選択し「完了」ボタンをクリックします。

 すると、以下のように「Bat.java」の骨子がほとんど出来上がっており、簡単にプログラミングすることができます。これを使って各モンスタークラスを作成していきましょう。

 以下が、それぞれのプログラムになります。

 ファイルが9つに増えましたね。それぞれエラーメッセージがなければ実行してみましょう。実行結果のサンプルは以下の通りです。

 今回は、プレイヤーの体力値を800にしたので勝利になりましたね。700くらいなら接戦になりそうかな!?皆さんも色々と数値を調整して遊んでみてくださいね。

7:特定のモンスターをダメージ値により急激に弱くする

 これで、最後のプログラム修正になります。有名なモンスターである「オオカミ男」「フランケンシュタイン」「ドラキュラ」を、ダメージが30点以上たまると、急激に弱くなり、以降の攻撃は2倍のダメージを与えることができるようにします。

 というわけで、「有名なモンスターなので通常は強いけど、30点以上ダメージをため込むとすんごく弱くなる」のような設定でプログラムしていきます。まずは、「FamousMonster.java」クラスを抽象型(未完成型)で追加。最初から抽象型でプログラムする場合は、以下のように「abstract」をチェックしておけば自動的に作成されます。

 次に、メソッドのオーバーライド。下図のように「dam」と入力して入力支援機能「ctrl」+「SPACE」キーを押すと、入力支援候補が出てきます。「damage(int amount)」を選択すれば、オーバーライドしてくれます。

 また、各「Bat.java」「Wolf.java」「Franken.java」「Kaibutsukun.java」「Dorakyura.java」で、以下のようにエラーがでいてる箇所があると思いますが、エラー箇所にマウスを持っていけば、支援機能が発動しますで、「実装されていないメソッドの追加」を選択すると不足分をオーバーライドしてくれます。

 以下、最後のプログラムになります。

 「Battle.java」は、プレイヤーやモンスターが攻撃されたときの体力値の減少を40という数値から「p.getPower()」「ms[selection].getPower」に修正しただけです。

 「Character.java」も「public abstract int getPower();」を追加しただけです。

 「monster.java」は全く変更していません。

 「Player.java」「Kaibutsukun.java」「Bat.java」は、「getPower」のオーバーライドだけ。

 「Wolf.java」「Franken.java」「Dorakyura.java」はFamousMonsterに変更し、「getPower」をオーバーライドしただけです。

 それぞれ、大きな変更はありません。以下、最終プログラムです。

まとめ

 これで、「モンスターとプレイヤーがバトルするプログラム」の作成は完成を迎えました。いろいろな機能が少しずつ実装されていく形で授業を進めてくれたので分かりやすかったです。段階的にプログラムを作るたびに評価していく「スパイラル開発」とかいう手法で進めてくださったそうです。素人には分かりやすいプログラム方法でした。

 あとはあの授業スピードについていけるくらいの基礎スキルを身に付けていくようにすれば、理解度はもっと向上するんだけどなぁ。

 いろいろなプログラムを入力して身体で覚えるようにしないと、ですね。

 それでは本日も最後までお付き合いいただき、ありがとうございました!

スポンサーリンク
最新情報をチェックしよう!