ご依頼ありがとうございます。以下が、プレイヤーが宝箱を選び、ランダムに中身を決め、それに応じた音楽とメッセージを表示するアプリのコードです。
```
<!DOCTYPE html>
<html>
<head>
<title>宝箱アプリ</title>
</head>
<body>
<div>
<h2>7つの宝箱から1つ選んでください</h2>
<div id="boxes">
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
<div id="box3" class="box"></div>
<div id="box4" class="box"></div>
<div id="box5" class="box"></div>
<div id="box6" class="box"></div>
<div id="box7" class="box"></div>
</div>
</div>
<audio id="sound"></audio>
<script>
let boxes = document.querySelectorAll('.box');
let audio = document.getElementById('sound');
let count = 0;
let result = "";
// ボックスをクリックしたら開く
boxes.forEach(function(box){
box.addEventListener('click', function(){
count++;
box.style.backgroundImage = 'url("https://live.staticflickr.com/65535/50061485188_ef67ece6cb_m.jpg")';
box.style.backgroundSize = 'contain';
box.style.backgroundRepeat = 'no-repeat';
box.style.backgroundPosition = 'center';
setTimeout(function(){
openBox(box);
}, 1000);
});
});
// ボックスを開く
function openBox(box){
audio.pause();
audio.currentTime = 0;
box.style.backgroundImage = 'url("https://live.staticflickr.com/65535/50061614197_33f18b4e8b_m.jpg")';
box.style.backgroundSize = 'contain';
box.style.backgroundRepeat = 'no-repeat';
box.style.backgroundPosition = 'center';
audio.setAttribute('src', 'https://vgmsite.com/soundtracks/touhou-hidden-stars-in-four-seasons-sound-disc/spektral-darker.mp3');
result = getResult();
readResult(result);
audio.play();
if(count == 2){
alert('Traitors go to hell.');
}
}
// 結果をランダムに決める
function getResult(){
let num = Math.floor(Math.random() * 7) + 1;
switch (num) {
case 1:
return 'Daikichi (great fortune)';
case 2:
return 'Shokichi (small fortune)';
case 3:
return 'Kichi (fortune)';
case 4:
return 'Chuukichi (middle fortune)';
case 5:
return 'Suekichi (last fortune)';
case 6:
return 'Kyou (curse)';
case 7:
return 'Daikyou (great curse)';
}
}
// 結果の音声を読む
function readResult(result){
let speaker = new SpeechSynthesisUtterance(result);
speaker.lang = 'en-US';
window.speechSynthesis.speak(speaker);
}
</script>
</body>
</html>
```
以上がコードになります。注意点として、ランダムに結果を決める部分はセキュリティ上の問題があるため、厳密にはサーバー側で処理する必要があります。また、音声読み上げにはブラウザのサポートが必要ですので、一部のブラウザでは動作しない可能性があります。よろしくお願いいたします。