前回をまだ読んでない方はこちら
👉 【ポケモン×Java】Lv9:『新技!ピカチュウ、アイアンテール!』〜配列〜
🎮 技を使って攻撃だ!
ピカチュウはすでに4つの技を覚えた。
次は、それを実際に使って攻撃する番だ!
💡 配列 × メソッド で攻撃処理!
▷ 選んだ技で攻撃できるようにしよう!
以下のように、技のインデックス番号を指定すれば、その技で攻撃できるよ!
Pikachu.java
class Pikachu {
String name = "ピカチュウ";
int hp = 100;
String[] moves = {"10万ボルト", "でんこうせっか", "アイアンテール", "かみなり"};
int[] powers = {20, 10, 15, 30};
void attack(Hitokage hi, int moveIndex) {
System.out.println(name + " の " + moves[moveIndex] + "!");
hi.hp = hi.hp - powers[moveIndex];
System.out.println(hi.name + " に " + powers[moveIndex] + " のダメージ!");
System.out.println(hi.name + " の HP は " + hi.hp + " になった!");
}
}
📒 トレーナーメモ
attack(Hitokage hi, int moveIndex)
で、相手と技の番号を指定!moveIndex
が2
なら、「アイアンテール」で攻撃だ!
▷ 実際に使ってみよう!
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(); // 改行
// 2番目の技(アイアンテール)で攻撃!
pi.attack(hi, 2);
}
}
▷ 出力結果
ピカチュウ がバトルに登場!
ピカ〜〜ッ!!
ヒトカゲ がバトルに登場!
カゲェ〜〜ッ!!
ピカチュウ の アイアンテール!
ヒトカゲ に 15 のダメージ!
ヒトカゲ の HP は 85 になった!
✍️ 練習
以下のコードの ??? を埋めて、ヒトカゲにも同じような攻撃メソッドを作ってみよう!
Hitokage.java
class Hitokage {
String name = "ヒトカゲ";
int hp = 100;
String[] moves = {"かえんほうしゃ", "ひのこ", "なきごえ", "ひっかく"};
int[] powers = {20, 10, 0, 15};
void attack(??? ???, int moveIndex) {
System.out.println(name + " の " + ??? + "!");
???.hp = ???.hp - ???;
System.out.println(???.name + " に " + ??? + " のダメージ!");
System.out.println(???.name + " の HP は " + ???.hp + " になった!");
}
}
次回:『キミが技を選ぶ番だ!』〜Scannerで選択〜
次はついに、プレイヤー自身が技を選んで攻撃!
CUI(コンソール)から入力して、技を使い分ける仕組みに挑戦しよう!
次の投稿まで――
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!
✅ 回答例(ヒトカゲバージョン)
Hitokage.java
package pokemon;
class Hitokage {
String name = "ヒトカゲ";
int hp = 100;
String[] moves = {"かえんほうしゃ", "ひのこ", "なきごえ", "ひっかく"};
int[] powers = {20, 10, 0, 15};
void attack(Pikachu pi, int moveIndex) {
System.out.println(name + " の " + moves[moveIndex] + "!");
pi.hp = pi.hp - powers[moveIndex];
System.out.println(pi.name + " に " + powers[moveIndex] + " のダメージ!");
System.out.println(pi.name + " の HP は " + pi.hp + " になった!");
}
}
BattleStage.java
package pokemon;
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
Hitokage hi = new Hitokage();
hi.attack(pi, 0); // ヒトカゲの「かえんほうしゃ」
}
}