オブジェクト配列を使ってミニゲームを作ってみよう!
この記事の対象者
Javaでオブジェクト指向を学び始めた人。
お題
(一般クラス)Heroクラス,Demonクラス(アプリケーションクラス)DemonAppクラスを作成し、以下の処理を作成せよ
[実行例 成功] デーモンが現れた(hp:911) ヒーローが集まった A(hp:34,power:56) B(hp:93,power:71) C(hp:54,power:50) D(hp:52,power:56) E(hp:41,power:97) F(hp:61,power:83) G(hp:70,power:91) H(hp:91,power:85) I(hp:35,power:64) J(hp:38,power:91) デーモンが稲妻(22)を放った Aは22のダメージをうけた(hp:12) Bは22のダメージをうけた(hp:71) Cは22のダメージをうけた(hp:32) Dは22のダメージをうけた(hp:30) Eは22のダメージをうけた(hp:19) Fは22のダメージをうけた(hp:39) Gは22のダメージをうけた(hp:48) Hは22のダメージをうけた(hp:69) Iは22のダメージをうけた(hp:13) Jは22のダメージをうけた(hp:16) --ヒーローたちの攻撃-- Aは56のダメージを与えた(Demon:855) Bは71のダメージを与えた(Demon:784) Cは50のダメージを与えた(Demon:734) Dは56のダメージを与えた(Demon:678) Eは97のダメージを与えた(Demon:581) Fは83のダメージを与えた(Demon:498) Gは91のダメージを与えた(Demon:407) Hは85のダメージを与えた(Demon:322) Iは64のダメージを与えた(Demon:258) Jは91のダメージを与えた(Demon:167) デーモンが稲妻(45)を放った Aは45のダメージをうけた(hp:-33) Aは力つきた Bは45のダメージをうけた(hp:26) Cは45のダメージをうけた(hp:-13) Cは力つきた Dは45のダメージをうけた(hp:-15) Dは力つきた Eは45のダメージをうけた(hp:-26) Eは力つきた Fは45のダメージをうけた(hp:-6) Fは力つきた Gは45のダメージをうけた(hp:3) Hは45のダメージをうけた(hp:24) Iは45のダメージをうけた(hp:-32) Iは力つきた Jは45のダメージをうけた(hp:-29) Jは力つきた --ヒーローたちの攻撃-- Bは71のダメージを与えた(Demon:96) Gは91のダメージを与えた(Demon:5) Hは85のダメージを与えた(Demon:-80) デーモンは朽ち果てた ヒーローたちは勝利した!
[実行例 失敗] デーモンが現れた(hp:968) ヒーローが集まった A(hp:80,power:69) B(hp:80,power:51) C(hp:59,power:87) D(hp:63,power:70) E(hp:97,power:93) F(hp:56,power:72) G(hp:43,power:72) H(hp:63,power:91) I(hp:30,power:81) J(hp:35,power:63) デーモンが稲妻(49)を放った Aは49のダメージをうけた(hp:31) Bは49のダメージをうけた(hp:31) Cは49のダメージをうけた(hp:10) Dは49のダメージをうけた(hp:14) Eは49のダメージをうけた(hp:48) Fは49のダメージをうけた(hp:7) Gは49のダメージをうけた(hp:-6) Gは力つきた Hは49のダメージをうけた(hp:14) Iは49のダメージをうけた(hp:-19) Iは力つきた Jは49のダメージをうけた(hp:-14) Jは力つきた --ヒーローたちの攻撃-- Aは69のダメージを与えた(Demon:899) Bは51のダメージを与えた(Demon:848) Cは87のダメージを与えた(Demon:761) Dは70のダメージを与えた(Demon:691) Eは93のダメージを与えた(Demon:598) Fは72のダメージを与えた(Demon:526) Hは91のダメージを与えた(Demon:435) デーモンが稲妻(49)を放った Aは49のダメージをうけた(hp:-18) Aは力つきた Bは49のダメージをうけた(hp:-18) Bは力つきた Cは49のダメージをうけた(hp:-39) Cは力つきた Dは49のダメージをうけた(hp:-35) Dは力つきた Eは49のダメージをうけた(hp:-1) Eは力つきた Fは49のダメージをうけた(hp:-42) Fは力つきた Hは49のダメージをうけた(hp:-35) Hは力つきた ヒーローたちは全滅した
ゲームの仕様
●デーモンのHPは800~999のランダム
●デーモンの放つ全体攻撃の威力は10~50のランダム
●ヒーローは10人固定
●ヒーローの名前はA,B…….
●それぞれのヒーローの初期値ー>HPは30~99のランダム、攻撃力は50~99のランダム
●先制攻撃はデーモン固定
●デーモンのHPが0以下になったら勝利で終了
●ヒーロー全員のHPが0以下になったら敗北で終了
作成の手順
Heroクラスの作成
//static フィールド static int deathCount; //インスタンスフィールド String name; int hp; int power; //引数1個のコンストラクタ 引数で名前を受け取り、内部でhpとpowerをランダムに生成する //インスタンスメソッド void attacked(int lightning) 引数に電撃攻撃力を受け取り内部でhpを減らす処理を書く 実行例を参考に出力し、もし死んだ場合はdeathCountを増やす void showInfo() 登場した際の 名前(hp:HP,power:POWER) を出力する。
Demonクラスの作成
//インスタンスフィールド int hp //コンストラクタ 引数なしのコンストラクタを作成し、内部で800~999のhpを生成しフィールドにセットする。 //インスタンスメソッド void lightning(Hero[] heroes) 攻撃力10~50をランダムに生成し、引数で入ってきたheroesそれぞれにダメージを与える。 (heroそれぞれがattackedを実行する) boolean isDeadAttackedBy(Hero h) 引数に攻撃者を受け取りその攻撃者の攻撃力をもとにhpを減らす。 もし死んだ場合はtrueを返す void appear() 登場した際の出力を作成する
DemonAppクラスの作成
//デーモンインスタンスを生成 //デーモン登場 //「ヒーローが集まった」を出力 //要素数10でヒーロー配列作成 //for文でAから順に名前をつけながらHeroインスタンスを生成し、配列に入れる //無限ループ //デーモンの攻撃 //全員死んだかの判定(全員死んだ場合終了) //ヒーローたちの攻撃(この際、HP>0の人しか攻撃できないので注意) //デーモンが死んだ場合は終了
コメント