コンソール上でHP100のモンスターを倒す!(while文、Math.floor、Math.random、インクリメント(1加算))

<!doctype html>
<html>
  <head><meta charset="UTF-8"></head>
  <body>
    <script>
      let monster = 100;
      let count = 0;
      window.alert('戦闘スタート');

      while(monster > 0) {
        const attack = Math.floor(Math.random() *30) + 1;
        console.log('モンスターに' + attack +'ダメージを与えた!');
        monster -= attack;
        count++;
      }
      console.log(count + '回でモンスターを倒した!')
    </script>
  </body>
</html>

<ゲームのルール>
1、体力100のモンスターがいて、あなたはその敵を倒さないといけない
2、あなたの攻撃力は1回につき30以下、毎回ランダムで決定する
3、あなたの攻撃力の数値だけ、モンスターは体力を減らす
4、モンスターの体力が0以下になるまで、2と3を繰り返す
5、何回で倒したか、繰り返しの回数をカウントする

1、モンスターの体力を保存しておく変数を定義して、そこに100を代入する

let enemy = 100;

2、3、4、繰り返し処理
4、モンスターの体力が0以下になるまで2と3を繰り返す
2、あなたの攻撃力として30以下の整数をランダムで決めて、それをモンスターの体力とは別の変数に保存する
3、モンスターの体力ーあなたの攻撃力
5、モンスターにダメージを与えた回数を保存しておく変数を定義して、インクリメント(1加算)で繰り返しの回数をカウントする。

//5
let count = 0;

while(monster > 0) {
//2
        const attack = Math.floor(Math.random() *30) + 1;
        console.log('モンスターに' + attack +'ダメージを与えた!');
//3
        monster -= attack;
//5
        count++;
      }

(Math.floor(Math.random() *30) + 1;
Math.floor(Math.random() *30において、0〜29までのランダムな数が得られるので、30まで取得するために+1する。

Math.random()
0 以上 1 未満 (0 は含むが、 1 は含まない) の範囲で浮動小数点の擬似乱数を返す。
Math.random関数は、1未満の少数による乱数を生成している。
ここでは整数の部分を0〜29までの数字を取得するのに30をかけて、30まで取得するために+1としている。
Math.floor()
与えられた値の小数点以下を切り捨てる。
ここでは、Math.randomで生成した値は少数なので、floorメソッドで整数に変える。


この記事が気に入ったらサポートをしてみませんか?