寿司の種類ごとに値段を設定するには、Sushi
コンストラクタ関数に価格のパラメータを追加して、それぞれの寿司オブジェクトに対して異なる価格を設定できるようにする必要があります。また、eat
メソッドを変更して、特定の寿司を食べるたびにその寿司の価格だけ残高から引かれるようにします。さらに、残高が寿司の価格未満の場合や寿司の在庫が0の場合には、寿司を食べることができないようにするチェックを追加します。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
// グローバル変数 残高
let money = 4000;
// 寿司のオブジェクト
function Sushi(kind, quantity, price) {
this.kind = kind;
this.quantity = quantity;
this.price = price; // 値段パラメータの追加
this.eat = function() {
if (this.quantity > 0 && money >= this.price) { // 在庫と残高のチェック
this.quantity -= 1;
money -= this.price; // 寿司の値段を反映
}
};
}
// それぞれの寿司に値段を設定
let sushiTuna = new Sushi("tuna", 10, 200);
let sushiSquid = new Sushi("squid", 20, 150);
let sushiShrimp = new Sushi("shrimp", 30, 250);
let sushiSalmon = new Sushi("salmon", 40, 180);
// 最初に選択される寿司
let sushi = sushiTuna;
// 寿司を食べる関数
function haveAMeal() {
sushi.eat();
document.getElementById("kind").textContent = sushi.kind;
document.getElementById("quantity").textContent = sushi.quantity;
document.getElementById("money").textContent = money;
}
// 寿司の種類を選ぶ関数
function chooseTuna() { sushi = sushiTuna; }
function chooseSquid() { sushi = sushiSquid; }
function chooseShrimp() { sushi = sushiShrimp; }
function chooseSalmon() { sushi = sushiSalmon; }
</script>
</head>
<body>
<button onclick="chooseTuna()">マグロを選ぶ</button>
<button onclick="chooseSquid()">イカを選ぶ</button>
<button onclick="chooseShrimp()">エビを選ぶ</button>
<button onclick="chooseSalmon()">サーモンを選ぶ</button>
<button onclick="haveAMeal()">寿司を食べる</button>
<p>
<span id="kind"></span>は残り<span id="quantity"></span>貫
</p>
<p>
お金は残り<span id="money"></span>円
</p>
</body>
</html>
このコードにより、寿司の種類ごとに個別の値段を設定し、残高が十分であり在庫がある限り、ユーザーは寿司を食べることができます。
Like!