コンソール上で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メソッドで整数に変える。
この記事が気に入ったらサポートをしてみませんか?