let startTime;
let timerId;
let displayTimerId;
let gameEnded = false;
let totalPoints = 0;
let attemptsLeft = 5;
document.getElementById("startButton").addEventListener("click", function() {
if (attemptsLeft > 0) {
startTime = new Date().getTime();
document.getElementById("stopButton").disabled = false;
document.getElementById("startButton").disabled = true;
document.getElementById("timerDisplay").textContent = "タイマーが動いています...3秒経ったら消えます";
document.getElementById("result").textContent = "";
gameEnded = false;
displayTimerId = setTimeout(() => {
document.getElementById("timerDisplay").textContent = "";
}, 2000);
} else {
alert("ゲーム終了!リロードして新しいゲームを開始してください。");
}
});
document.getElementById("stopButton").addEventListener("click", function() {
if (!gameEnded) {
clearTimeout(timerId);
clearTimeout(displayTimerId);
showResult();
document.getElementById("startButton").disabled = false;
attemptsLeft--;
updateAttemptsDisplay();
if (attemptsLeft === 0) {
document.getElementById("startButton").disabled = true;
alert("ゲーム終了!最終スコア: " + totalPoints);
}
}
});
function showResult() {
let currentTime = new Date().getTime();
let elapsedTime = ((currentTime - startTime) / 1000).toFixed(2);
let difference = Math.abs(elapsedTime - 20).toFixed(2);
let points = calculatePoints(difference);
totalPoints += points;
let resultMessage = `${elapsedTime}秒でストップしました。\n`;
resultMessage += `目標との差: ${difference}秒\n`;
resultMessage += `獲得ポイント: ${points}`;
if (difference == 0) {
totalPoints += 5; // ぴったり30秒の場合、追加で15ポイント
resultMessage = "おめでとう!ちょうど30秒です!\n" + resultMessage;
} else if (elapsedTime > 30) {
resultMessage += "\n30秒を超えましたが、よく頑張りました!";
}
document.getElementById("result").textContent = resultMessage;
document.getElementById("stopButton").disabled = true;
document.getElementById("totalPoints").textContent = `累計ポイント: ${totalPoints}`;
gameEnded = true;
}
function calculatePoints(difference) {
if (difference == 0) return 15;
if (difference <= 0.5) return 10;
if (difference <= 1) return 8;
if (difference <= 2) return 6;
if (difference <= 3) return 4;
if (difference <= 5) return 2;
return 1;
}
function updateAttemptsDisplay() {
document.getElementById("attemptsLeft").textContent = `残り回数: ${attemptsLeft}`;
}