動画の説明
今回はプログラミングに欠かせない「条件分析」を学習します。
条件分析は難易度2です。
未経験の方が躓きやすいポイントですので「100%理解できる」と、思わないでください。
挫折しないためには「10回~20回と学習を繰り返し」少しずつ理解を深めていく必要があります。
今回は「こんなことが出来るんだ」程度の 「紹介」 としてご覧ください。
* Java入門【バトル表示⑦】整理整頓 の続編になります。
連載動画
この動画は連載物です。以下の順にご覧ください。
- 【バトル表示①】パラメターの表示
- 【バトル表示②】変数の利用
- 【バトル表示③】文字と数値
- 【バトル表示④】ダメージ計算
- 【バトル表示⑤】ダメージの乱数化
- 【バトル表示⑥】魔法使いの攻撃
- 【バトル表示⑦】整理整頓
- 【バトル表示⑧】ダウン判定
- 【バトル表示⑨】勝利判定
条件分析とは
IF図解
ダウン判定
IFを使用してモンスターがダウンしているか判定します。
package stage2; import java.util.Random; public class Battle { public static void main(String[] args) { // プレーヤーパラメーター String p1 = "ゆうと"; String p2 = "かぐら"; // モンスターパラメーター String m1 = "おばけ"; String m2 = "スライム"; int hp1 = 60; int hp2 = 120; // ダメージ量 int da1 = new Random().nextInt(100); int da2 = new Random().nextInt(200); // 戦闘開始 System.out.println("モンスターが現れた!"); System.out.println("--------------------------"); System.out.println(m1 + " HP:" + hp1); System.out.println(m2 + " HP:" + hp2); System.out.println("--------------------------"); System.out.println(p1+"の攻撃!"); System.out.println(m1 + "は"+ da1 +"のダメージ"); hp1 = hp1 -da1; System.out.println(p2+"の攻撃!"); System.out.println(m1 + "は"+da2+"のダメージ"); hp1 = hp1 -da2; System.out.println(m2 + "は"+da2+"のダメージ"); hp2 = hp2 -da2; System.out.println("--------------------------"); System.out.println(m1 + " HP:" + hp1); System.out.println(m2 + " HP:" + hp2); System.out.println("--------------------------"); // おばけのHPが0以下だったら・・・・ if( hp1 <= 0 ){ System.out.println(m1 + "は倒れた!!"); } // スライムのHPが0以下だったら・・・・ if( hp2 <= 0 ){ System.out.println(m2 + "は倒れた!!"); } } }
復習問題
合計ダメージが50以下の場合「余裕でほほえむ」処理追加します。
実行結果を出すために、入力内容の空欄を埋めてください。
解答例
package stage2; import java.util.Random; // ダウン判定 public class Battle { public static void main(String[] args) { // プレーヤーパラメーター String p1 = "ゆうと"; String p2 = "かぐら"; // モンスターパラメーター String m1 = "おばけ"; String m2 = "スライム"; int hp1 = 60; int hp2 = 120; // ダメージ量 int da1 = new Random().nextInt(100); int da2 = new Random().nextInt(200); // 戦闘開始 System.out.println("モンスターが現れた!"); System.out.println("--------------------------"); System.out.println(m1 + " HP:" + hp1); System.out.println(m2 + " HP:" + hp2); System.out.println("--------------------------"); System.out.println(p1 + "の攻撃!"); System.out.println(m1 + "は" + da1 + "のダメージ"); hp1 = hp1 - da1; System.out.println(p2 + "の攻撃!"); System.out.println(m1 + "は" + da2 + "のダメージ"); hp1 = hp1 - da2; System.out.println(m2 + "は" + da2 + "のダメージ"); hp2 = hp2 - da2; System.out.println("--------------------------"); System.out.println(m1 + " HP:" + hp1); System.out.println(m2 + " HP:" + hp2); System.out.println("--------------------------"); // おばけのHPが0以下だったら・・・・ if (hp1 <= 0) { System.out.println(m1 + "は倒れた!!"); } // スライムのHPが0以下だったら・・・・ if (hp2 <= 0) { System.out.println(m2 + "は倒れた!!"); } // 余裕判定(合計ダメージが50以下) if (da1 + da2 <= 50) { System.out.println(m1 + "は余裕でほほえんだ!"); } if (da2 <= 50) { System.out.println(m2 + "は余裕でほほえんだ!"); } } }
ダウン判定とほぼ同じ内容ですので、コピペ + 修正で可能です。
※ 実行結果が同じなら、解答例と違ってもOKです。( 変数名や入力行数が違ってもOK )