悪魔退治ゲーム作成

Java

オブジェクト配列を使ってミニゲームを作ってみよう!

この記事の対象者

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の人しか攻撃できないので注意)
//デーモンが死んだ場合は終了

Java
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

タイトルとURLをコピーしました