
謎解き: ポーションの品質チェック
シナリオ
あなたは王国の 錬金術師 です。ある日、街の市場で「粗悪なポーションが売られている」という噂が広まりました。 商人たちは「このポーションはちゃんと効果がある!」と主張していますが、市民は「本当に大丈夫なの?」と疑っています。 そこで、あなたは ポーションの品質をチェックする関数 を作ることになりました。問題
ポーションの品質は、以下の 3つの要素 に基づいて評価されます。- potency(効果の強さ): 数値が高いほど良い。(例: 50 以上なら優秀) - purity(純度): 100% に近いほど良い。(例: 90%以上なら安全) - stability(安定性): 0 以上の整数で、値が低いほど良い。(例: 5 以下なら問題なし)あなたの仕事は、これらの値をチェックし、ポーションが "良質 (Good)", "普通 (Normal)", "危険 (Dangerous)" のどれに分類されるか判定することです。 以下のルールでポーションを評価してください。
- すべての基準を満たす → "Good" - 1つでも基準を満たさない → "Normal" - 2つ以上の基準を満たさない → "Dangerous"
条件
function checkPotionQuality(potency, purity, stability) {
// ここに処理を書く
}
// テストケース
console.log(checkPotionQuality(60, 95, 3)); // "Good"
console.log(checkPotionQuality(40, 85, 4)); // "Normal"
console.log(checkPotionQuality(30, 80, 10)); // "Dangerous"
この関数を実装し、ポーションの品質をチェックしてください!
王国の人々が安心してポーションを使えるよう、あなたのプログラムにかかっています!
解答プログラミングを打ち込む
※ checkPotionQuality()関数を完成させてください。答え
回答(サンプル)
function checkPotionQuality(potency, purity, stability) {
potency = Number.isInteger(potency) ? potency : 0
purity = Number.isInteger(purity) ? purity : 0
stability = Number.isInteger(stability) ? stability : 0
const goodPotency = potency >= 50
const goodPurity = purity >= 90
const goodStability = stability <= 5
const passedChecks = goodPotency + goodPurity + goodStability // true を数値化
switch(passedChecks){
case 1:
case 2:
return "Normal"
case 3:
return "Good"
default:
return "Dangerous"
}
}
解説
- 各基準 (potency, purity, stability) が合格基準を満たしているかを true / false で判定。
- true を 1 に変換し、合計値を passedChecks に格納。
- passedChecks の数によって "Good", "Normal", "Dangerous" を返す。(if文で書いても良い)
- 送られてきた値が数値かどうか判別して、違う場合は 0 を代入する。
0 件のコメント:
コメントを投稿