残り時間: 130:00
賞金: 0円
```html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>逃走中タイマー</title>
<style>
@keyframes blink {
0%, 100% {opacity: 1;}
50% {opacity: 0;}
}
@keyframes bounce {
0%, 100% {transform: translateY(0);}
50% {transform: translateY(-10px);}
}
.blink {
animation: blink 1s infinite;
}
.bounce {
animation: bounce 0.5s infinite;
}
</style>
</head>
<body>
<div style="width: 400px; height: 400px; margin: 0 auto; border: 2px solid black; position: relative;">
<div id="notification" style="position: absolute; top: 5px; left: 5px; font-size: 18px;"></div>
<div style="text-align: center; font-size: 24px; margin-top: 40px;">
<div>残り時間: <span id="time" style="font-weight: bold;">130:00</span></div>
<div>賞金: <span id="prize" style="font-weight: bold;">0円</span></div>
</div>
<div id="mission" style="position: absolute; top: 5px; right: 5px; font-size: 18px;"></div>
<div style="text-align: center; margin-top: 20px;">
<button onclick="start()" style="font-size: 18px; padding: 10px;">▶️ スタート</button>
<button onclick="stop()" style="font-size: 18px; padding: 10px;">⏸ ストップ</button>
<button onclick="reset()" style="font-size: 18px; padding: 10px;">🔄 リセット</button>
<button onclick="fastForward()" style="font-size: 18px; padding: 10px;">⏩ 早送り</button>
<button onclick="rewind()" style="font-size: 18px; padding: 10px;">⏪ 巻き戻し</button>
</div>
<div style="position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);">
<button onclick="toggleLever(1)" style="font-size: 24px; padding: 10px;">🔺 レバー1</button>
<button onclick="toggleLever(2)" style="font-size: 24px; padding: 10px;">🔺 レバー2</button>
<button onclick="toggleLever(3)" style="font-size: 24px; padding: 10px;">🔺 レバー3</button>
</div>
</div>
<script>
let countdownTime = 60;
let gameTime = 130 * 60;
let currentPrize = 0;
let prizeRate = 100;
let levers = [false, false, false];
let countdownTimer, gameTimer;
function updateDisplay() {
const minutes = Math.floor(gameTime / 60);
const seconds = gameTime % 60;
document.getElementById('time').textContent = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
document.getElementById('prize').textContent = `${currentPrize.toLocaleString()}円`;
}
function start() {
stop();
document.getElementById('notification').textContent = `ハンター放出まで${countdownTime}秒`;
countdownTimer = setInterval(() => {
countdownTime--;
document.getElementById('notification').textContent = `ハンター放出まで${countdownTime}秒`;
if (countdownTime <= 0) {
clearInterval(countdownTimer);
document.getElementById('notification').textContent = 'START';
setTimeout(() => document.getElementById('notification').textContent = '', 2000);
startGame();
}
}, 1000);
}
function startGame() {
gameTimer = setInterval(() => {
gameTime--;
currentPrize += prizeRate;
updateDisplay();
handleSpecialConditions();
if (gameTime <= 0) {
clearInterval(gameTimer);
document.getElementById('mission').textContent = `逃げ切れば賞金 ${(currentPrize / 10000).toLocaleString()}万円`;
}
}, 1000);
}
function stop() {
clearInterval(countdownTimer);
clearInterval(gameTimer);
}
function reset() {
stop();
countdownTime = 60;
gameTime = 130 * 60;
currentPrize = 0;
prizeRate = 100;
levers = [false, false, false];
updateDisplay();
document.getElementById('notification').textContent = '';
document.getElementById('mission').textContent = '';
}
function fastForward() {
gameTime = Math.max(0, gameTime - 60);
currentPrize += prizeRate * 60;
updateDisplay();
}
function rewind() {
gameTime += 60;
currentPrize = Math.max(0, currentPrize - prizeRate * 60);
updateDisplay();
}
function toggleLever(index) {
levers[index - 1] = !levers[index - 1];
const leverCount = levers.filter(l => l).length;
prizeRate = 100 + leverCount * 100;
}
function handleSpecialConditions() {
if (gameTime === (130 - 70) * 60) {
document.getElementById('mission').textContent = '賞金単価をアップせよ';
}
if (gameTime === (130 - 60) * 60) {
const leverCount = levers.filter(l => l).length;
document.getElementById('mission').textContent = leverCount > 0 ? 'ミッションクリア' : 'ミッション失敗';
setTimeout(() => document.getElementById('mission').textContent = '', 2000);
prizeRate = leverCount > 0 ? prizeRate : 50;
}
if (gameTime === 2 * 60) {
document.getElementById('notification').textContent = 'ゲーム終了まで2分';
setTimeout(() => document.getElementById('notification').textContent = '', 2000);
}
if (gameTime === 1 * 60) {
document.getElementById('notification').textContent = 'ゲーム終了まで1分';
setTimeout(() => document.getElementById('notification').textContent = '', 2000);
}
}
updateDisplay();
</script>
</body>
</html>
```