シール剥がしてください
👾
```html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ダイヤルゲーム</title>
<style>
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-30px);
}
60% {
transform: translateY(-15px);
}
}
@keyframes fadeInOut {
0%, 100% { opacity: 0; }
50% { opacity: 1; }
}
</style>
</head>
<body>
<div style="width: 400px; height: 400px; border: 2px solid black; position: relative; overflow: hidden;">
<div id="messages"
style="position: absolute; top: 10px; left: 10px; font-size: 14px; background: yellow; padding: 3px;">
シール剥がしてください
</div>
<input id="dialInput" type="text" maxlength="4" style="position: absolute; bottom: 50px; left: 50%; transform: translateX(-50%); font-size: 20px;" />
<button id="resetBtn" style="position: absolute; bottom: 10px; left: 10px;">リセット</button>
<button id="sealBtn" style="position: absolute; bottom: 10px; right: 10px;">シール</button>
<button id="escapeBtn" style="position: absolute; display: none; bottom: 50px; right: 10px;">脱出</button>
<div id="hunter" style="display: none; position: absolute; top: 50%; left: 50%; font-size: 50px; transform: translate(-50%, -50%);">
👾
</div>
</div>
<script>
const correctCode = "0127";
let timer;
let hunterTimeout;
let escapeTimeout;
document.getElementById('sealBtn').onclick = function() {
document.getElementById('messages').innerText = '5秒カウント開始!';
let count = 5;
timer = setInterval(() => {
document.getElementById('messages').innerText = count + '秒';
count--;
if (count < 0) {
clearInterval(timer);
releaseHunter();
}
}, 1000);
}
function releaseHunter() {
document.getElementById('messages').innerText = 'ワイルドハンター放出!';
document.getElementById('hunter').style.display = 'block';
document.getElementById('hunter').style.animation = 'bounce 1s infinite';
document.getElementById('escapeBtn').style.display = 'block';
escapeTimeout = setTimeout(() => {
document.getElementById('messages').innerText = '消滅';
gameOver();
}, 5000);
}
document.getElementById('escapeBtn').onclick = function() {
document.getElementById('messages').innerText = '復活カード獲得';
clearTimeout(escapeTimeout);
resetGame();
}
document.getElementById('resetBtn').onclick = function() {
resetGame();
}
function resetGame() {
clearInterval(timer);
clearTimeout(hunterTimeout);
clearTimeout(escapeTimeout);
document.getElementById('messages').innerText = 'シール剥がしてください';
document.getElementById('hunter').style.display = 'none';
document.getElementById('hunter').style.animation = '';
document.getElementById('escapeBtn').style.display = 'none';
}
document.getElementById('dialInput').onkeydown = function(event) {
if (event.key === 'Enter' && this.value === correctCode) {
escapeButton.display = 'block';
setTimeout(() => {
if (document.getElementById('escapeBtn').style.display === 'block') {
clearTimeout(escapeTimeout);
document.getElementById('messages').innerText = '復活カード獲得';
resetGame();
}
}, 5000);
}
}
</script>
</body>
</html>
```