28
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】Lv5:『ピカチュウに20のダメージ!?』~演算子~

28
Posted at

前回をまだ読んでない方はこちら

👉 【ポケモン×Java】Lv4:『ピカチュウ、10万ボルト!』〜メソッド〜


🎮 ダメージ計算

技もしっかりと出せるようになって、
バトルも次のフェーズに進めるぞ!!

次は、ダメージ計算のフェーズに!
準備はいいかな?

💡 演算子

▷ ダメージってどう与えるの?

前回、ポケモンの技を出すときには attack() メソッドを使ったね。
今回はこの中で、「相手のHPを減らす」という処理を加えていくよ!

たとえば、ピカチュウが技「10まんボルト」を出したら、
ヒトカゲのHPを20減らす,といったイメージだ。


▷ クラスボールに「相手に攻撃する処理」を追加しよう!

Pikachu.java
void attack(Hitokage hi) {
    System.out.println("10まんボルト!");
    System.out.println(hi.name + " に 20 のダメージ!");
    // 相手のHPを20減らす処理をあとで加えよう!
}

📒 トレーナーのメモ
attack(Hitokage hi) は「攻撃(ヒトカゲ)」という処理だよ。
メソッドの() の中に、変更したい情報を入れることができるんだ。


▷ 実際にHPを減らす書き方

Pikachu.java
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」という処理だよ。
今後、ダメージ計算や回復したりもできるから、覚えておこう!


▷ 実行:

BattleStage.java
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 メソッドの形

Hitokage.java
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 で攻撃する

BattleStage.java
package pokemon;

class BattleStage {
    public static void main(String[] args) {
        ??? yourPokemon = new ???();
        ??? enemyPokemon = new ???();
        yourPokemon.attack(enemyPokemon);
    }
}

次回:『バトル開幕!』

次回は、相手も攻撃してくるバトルを体験していくよ!
どんなバトルになっていくのか!?

次の投稿まで~~

ピッピカチュウ!!


あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい...」って思ってた人も、
「ちょっと楽しいかも...!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


✅ 回答例(ヒトカゲが主人公の場合)

Hitokage.java
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 + " になった!");
    }
}
BattleStage.java
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 になった!

🔍 今のプロジェクトの様子

image.png


28
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?