前回をまだ読んでない方はこちら
👉 【ポケモン×Java】Lv11:『キミが技を選ぶ番だ!』〜Scannerで選択〜
🎮 いまできるすべてをぶつけよ!
第0章~第11章までおつかれさま!!
説明が足りなかったりして、難しかったかもしれないが、
ここまでついてきてくれてありがとう。
さあ、最後に熱いバトルにしようじゃないか
💡 いままで学習したものをすべて合体しよう
- Scannerで、技が指定できるようにする。
- ポケモンが4種類技をだせる。
- どちらかかのHPが0になるまで勝負を繰り返す。
- トレーナーは2人とも、技を選択するようにする。
+α(できる人向け)
- アイテムで回復する(例:きずぐすりでHPを20回復!)
- 自分ターンになった際、お互いのHPが見えるようにしよう
- 実は、体力が0より小さくなる場合があるから、その対処。
etc...実際のポケモンバトルにどんどん近づけてみよう!
✍️ 練習(これより下を見ないで挑戦してみよう)
Hint1 Scannerを適用して、技を選択(前回の復習)
BattleStage.java
package pokemon;
import java.util.Scanner;
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
Hitokage hi = new Hitokage();
Scanner scanner = new Scanner(System.in);
System.out.println("\n--- キミの番! ---");
System.out.println("技を選んでね:");
System.out.println("0: かえんほうしゃ");
System.out.println("1: ひのこ");
System.out.println("2: なきごえ");
System.out.println("3: ひっかく");
System.out.print();//改行
System.out.print("選択 (番号):");
hi.attack(pi, scanner.nextInt()); // 技の番号を取得(scanner.nextInt())
System.out.print();//改行
System.out.println("\n--- 博士の番! ---");
System.out.println("技を選んでね:");
System.out.println("0: 10万ボルト");
System.out.println("1: でんこうせっか");
System.out.println("2: アイアンテール");
System.out.println("3: かみなり");
System.out.print();//改行
System.out.print("選択 (番号):");
pi.attack(hi, scanner.nextInt());
System.out.print();//改行
scanner.close();
}
}
Hint2 While文で、バトルを繰り返す
BattleStage.java
package pokemon;
import java.util.Scanner;
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
Hitokage hi = new Hitokage();
Scanner scanner = new Scanner(System.in);
while (pi.hp > 0 && hi.hp > 0) {
System.out.println("\n--- キミの番! ---");
System.out.println("技を選んでね:");
System.out.println("0: かえんほうしゃ");
System.out.println("1: ひのこ");
System.out.println("2: なきごえ");
System.out.println("3: ひっかく");
System.out.print();//改行
System.out.print("選択 (番号):");
hi.attack(pi, scanner.nextInt());
System.out.print();//改行
System.out.println("\n--- 博士の番! ---");
System.out.println("技を選んでね:");
System.out.println("0: 10万ボルト");
System.out.println("1: でんこうせっか");
System.out.println("2: アイアンテール");
System.out.println("3: かみなり");
System.out.print();//改行
System.out.print("選択 (番号):");
pi.attack(hi, scanner.nextInt());
System.out.print();//改行
}
scanner.close();
}
}
📒 トレーナーメモ
while文Scanner scanner = new Scanner(System.in);の後に書くのだ!
⇒ 逆にすると、何回も入力機能を呼び出すことになる。1回でいい。
scanner.close();も同様だ!!
Hint3 if文で、バトル終了の処理
BattleStage.java
package pokemon;
import java.util.Scanner;
class BattleStage {
public static void main(String[] args) {
Pikachu pi = new Pikachu();
Hitokage hi = new Hitokage();
Scanner scanner = new Scanner(System.in);
while (pi.hp > 0 && hi.hp > 0) {
System.out.println("\n--- キミの番! ---");
System.out.println("技を選んでね:");
System.out.println("0: かえんほうしゃ");
System.out.println("1: ひのこ");
System.out.println("2: なきごえ");
System.out.println("3: ひっかく");
System.out.println();//改行
System.out.print("選択 (番号):");
hi.attack(pi, scanner.nextInt());
System.out.println();//改行
if (pi.hp <= 0) {
System.out.println("\nピカチュウは倒れた!キミの勝ちだ!");
break;
}
System.out.println("\n--- 博士の番! ---");
System.out.println("技を選んでね:");
System.out.println("0: 10万ボルト");
System.out.println("1: でんこうせっか");
System.out.println("2: アイアンテール");
System.out.println("3: かみなり");
System.out.println();//改行
System.out.print("選択 (番号):");
pi.attack(hi, scanner.nextInt());
System.out.println();//改行
if (hi.hp <= 0) {
System.out.println("\nヒトカゲは倒れた!キミの負けだ...");
break;
}
}
scanner.close();
}
}
ラストバトル
私は、0 ⇒ 1 ⇒ 2 ⇒ 3 ⇒ 0 の順で技を出していくぞ!!
さあ、勝負だ!!
次回:『旅はまだ始まったばかり』
これで、大体のことはできるようになりましたね。
私に勝つことはできたかな?
さあ、いよいよパートナーポケモンと冒険に出発!
次の投稿まで――
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい...」って思ってた人も、
「ちょっと楽しいかも...!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!