前回をまだ読んでない方はこちら
👉 【ポケモン×Java】Lv6:『バトル開幕!』〜For文〜
🎮 バトルスタート
ポケモンバトルもいよいよ本格的に!
前回は「for文」を使って交互に攻撃し合うバトルを作ったね。
でも気づいた人いるかな?なんと、
**HPが0になってもバトルが続いちゃう**という問題が残っていたんだ!
今回は、「HPが0になったらバトル終了」という仕組みを作るために、
`while文`を使ってみよう!
💡 while文
でバトルを制御する!
▷ 書き方のイメージ
BattleStage.java
while (pi.hp > 0 && hi.hp > 0) {
}
📒 トレーナーのメモ
while ( 条件 ){ }
は、「条件が成立している間ずっと繰り返す」という意味!- 今回の条件は、どちらのポケモンもHPが0より大きい間。
A && B
は A と B がどちらも成立するときを意味するよ!A || B
は A か B のどちらかが成立するときを意味するよ!
✍️ 練習
- 前回の
for文
文をwhile文
に書き換えて実行してみよう!! - 実際にどうなるか実行してみよう。
Hint①:書き方(???に対応する文字を考えよう!)
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(); //改行
while (???) {
// バトルの処理
???
}
}
}
次回:『先にHPが0になるのは?』
あ、、、うまくいくと思ったのに、、、
大丈夫!!あと少しだ!!
次の投稿まで――
ピッピカチュウ!!
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!
✅ 回答例:
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(); //改行
// どちらかのポケモンの体力が0になるまで繰り返す。
while (pi.hp > 0 && hi.hp > 0) {
// ピカチュウの攻撃
pi.attack(hi);
System.out.println(); //改行
// ヒトカゲの攻撃
hi.attack(pi);
System.out.println(); //改行
}
}
}
出力結果(一部)
ピカチュウ がバトルに登場!
ピカ〜〜ッ!!
ヒトカゲ がバトルに登場!
カゲェ〜〜ッ!!
ピカチュウ の 10万ボルト!
ヒトカゲ に 20 のダメージ!
ヒトカゲ の HP は 80 になった!
...省略
ピカチュウ の 10万ボルト!
ヒトカゲ に 20 のダメージ!
ヒトカゲ の HP は 0 になった!
ヒトカゲ の かえんほうしゃ!
ピカチュウ に 20 のダメージ!
ピカチュウ の HP は 0 になった!