前回をまだ読んでない方はこちら
👉 【ポケモン×Java】Lv4:『ピカチュウ、10万ボルト!』〜メソッド〜
🎮 ダメージ計算
技もしっかりと出せるようになって、
バトルも次のフェーズに進めるぞ!!
次は、ダメージ計算のフェーズに!
準備はいいかな?
💡 演算子
▷ ダメージってどう与えるの?
前回、ポケモンの技を出すときには attack() メソッドを使ったね。
今回はこの中で、「相手のHPを減らす」という処理を加えていくよ!
たとえば、ピカチュウが技「10まんボルト」を出したら、
ヒトカゲのHPを20減らす,といったイメージだ。
▷ クラスボールに「相手に攻撃する処理」を追加しよう!
void attack(Hitokage hi) {
System.out.println("10まんボルト!");
System.out.println(hi.name + " に 20 のダメージ!");
// 相手のHPを20減らす処理をあとで加えよう!
}
📒 トレーナーのメモ
attack(Hitokage hi)は「攻撃(ヒトカゲ)」という処理だよ。
メソッドの() の中に、変更したい情報を入れることができるんだ。
▷ 実際にHPを減らす書き方
void attack(Hitokage hi) {
System.out.println(name + " の 10まんボルト!");
// HPの計算
hi.hp = hi.hp - 20;
System.out.println(hi.name + " に 20 のダメージ!");
System.out.println(hi.name + " の HP は " + hi.hp + " になった!");
}
📒 トレーナーのメモ
hi.hp = hi.hp - 20;は「ヒトカゲのHPは ヒトカゲのHP - 20」という処理だよ。
今後、ダメージ計算や回復したりもできるから、覚えておこう!
▷ 実行:
package pokemon;
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
System.out.println(); // 改行
Hitokage hi = new Hitokage();
System.out.println(); // 改行
pi.attack(hi);
}
}
📒 トレーナーのメモ
出力結果がわかりにくくなってきたね。
これで改行して見やすくしよう!
System.out.println(); // 改行
▷ 出力:
ピカチュウ がバトルに登場!
ピカーッ!!
ヒトカゲ がバトルに登場!
カゲェーッ!!
ピカチュウ の 10まんボルト!
ヒトカゲ に 20 のダメージ!
ヒトカゲ の HP は 80 になった!
✍️ 練習
あなたのヒトカゲも、攻撃できるようにしてみよう!
以下の Hint をもとに、自分でメソッドを完成させてみよう!
Hint 1:attack メソッドの形
void attack(??? ???) {
System.out.println(name + " の かえんほうしゃ!");
pi.hp = pi.hp - 20;
System.out.println(???.name + " に 20 のダメージ!");
System.out.println(???.name + " の HP は " + ???.hp + " になった!");
}
Hint 2:BattleStage で攻撃する
package pokemon;
class BattleStage {
public static void main(String[] args) {
??? yourPokemon = new ???();
??? enemyPokemon = new ???();
yourPokemon.attack(enemyPokemon);
}
}
次回:『バトル開幕!』
次回は、相手も攻撃してくるバトルを体験していくよ!
どんなバトルになっていくのか!?
次の投稿まで~~
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい...」って思ってた人も、
「ちょっと楽しいかも...!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!
✅ 回答例(ヒトカゲが主人公の場合)
class Hitokage {
String name = "ヒトカゲ";
String type = "ほのお";
int hp = 100;
Hitokage() {
System.out.println(name + " がバトルに登場!");
cry();
}
void cry() {
System.out.println("カゲェーッ!!");
}
void attack() {
System.out.println("かえんほうしゃ!");
}
void attack(Pikachu pi) {
System.out.println(name + " の かえんほうしゃ!");
pi.hp = pi.hp - 20;
System.out.println(pi.name + " に 20 のダメージ!");
System.out.println(pi.name + " の HP は " + pi.hp + " になった!");
}
}
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
System.out.println(); // 改行
Hitokage hi = new Hitokage();
System.out.println(); // 改行
hi.attack(pi);
}
}
出力結果:
ピカチュウ がバトルに登場!
ピカーッ!!
ヒトカゲ がバトルに登場!
カゲェーッ!!
ヒトカゲ の かえんほうしゃ!
ピカチュウ に 20 のダメージ!
ピカチュウ の HP は 80 になった!
