前提・実現したいこと
Javascriptで
敵とヒーローで攻撃し合うゲームを作成中です。
自分で書けるところまで書き進めました。
doBattle関数が実行されません。。
何か抜けておりますでしょうか?
初心者でif文の書き方が苦手です。
アドバイスいただけますと幸いです。
hitPointsがzeroになるとshipは破壊完了として作成していこうと思ってます。
該当のソースコード
javascript
class Ship{ constructor(hitPoints, firepower, kogekiRate){ this.hitPoints = hitPoints; this.firepower = firepower; this.kogekiRate = kogekiRate; } } //hitPoints, firepower, kogekiRate const Hero = new Ship(20, 5, 0.7); class tekiShip extends Ship{ constructor(hitPoints, firepower, kogekiRate){ super(hitPoints, firepower, kogekiRate); } } let tekiArray = [] for(let i =0; i < 6; i++){ tekiArray[i] = new tekiShip (randomizer(3,6), randomizer(2,4),(randomizer(60,80) / 100)); } console.log(tekiArray) function randomizer(min, max){ return (Math.floor(Math.random() * (max - min + 1) + min)); } function game(){ playGame = prompt('ゲーム開始には、Yを入力する'); playGame = playGame.toUpperCase(); if (playGame === 'Y'){ startPrompt() } else { alert('またね') } function startPrompt(){ startPrompt = prompt('type "attack" or "retreat"'); startPrompt = startPrompt.toLowerCase(); if ( startPrompt === 'attack'){ doBattle() }else if (startPrompt === 'retreat'){ alert('Game Over・゚。(´;д;`) 。゚・Game Over') } } function doBattle(){ if (Math.random() < tekiArray[0].kogekiRate) { Hero.hitPoints -= tekiArray[0].firepower; alert("攻撃された"); } else if (Math.random() < Hero.kogekiRate){ tekiArray[0].hitPoints -= Hero.firepower; alert("攻撃した"); } else if (Math.random() < tekiArray[0].hitPoints){ tekiArray.hitPoints -= tekiArray.firepower; //作成途中 } } } game(); startPrompt();
回答1件
あなたの回答
tips
プレビュー