/** * 5 dice vs. 10 dice * by Kazuki Maeda * Last-Modified: Mar. 9, 2021 */ let mode = '' let numgame = 0; let thread; let playerwin = 0; let kingwin = 0; let draw = 0; window.onload = function(){ document.getElementById('game').addEventListener('click', game, true); document.getElementById('endless').addEventListener('click', endless, true); document.getElementById('reset').addEventListener('click', reset, true); } function dice(d){ if(d == 1){ return ''; } if(d == 2){ return '⚁'; } if(d == 3){ return '⚂'; } if(d == 4){ return '⚃'; } if(d == 5){ return '⚄'; } if(d == 6){ return '⚅'; } } function game(){ ++numgame; let player = []; let playersum = 0; let gametext = '    あなた:'; for(let i = 0; i < 5; ++i){ player.push(Math.floor(Math.random()*6)+1); playersum += player[i]; gametext += dice(player[i]); } gametext += ':' + playersum + '
'; let king = []; let kingsum = 0; gametext += 'キングボンビー:'; for(let i = 0; i < 10; ++i){ king.push(Math.floor(Math.random()*6)+1); kingsum += king[i]; gametext += dice(king[i]); } gametext += ':' + kingsum + '
'; if(kingsum > playersum){ ++kingwin; gametext += 'キングボンビーの勝ち!'; } else if(kingsum < playersum){ ++playerwin; gametext += 'あなたの勝ち!'; } else { ++draw; gametext += '引き分け!'; } gametext += '
あなたは' + playerwin + '勝' + kingwin + '敗' + draw + '引き分け(勝率:' + (playerwin/numgame*100).toFixed(6) + '%)' document.getElementById('result').innerHTML = gametext; } function endless(){ if(mode != 'endless'){ mode = 'endless'; thread = setInterval("endlessupdate();", 1000/60); document.getElementById('game').disabled = true; document.getElementById('reset').disabled = true; document.getElementById('endless').value = 'もう飽きた'; } else { mode = 'inendless'; document.getElementById('game').disabled = false; document.getElementById('reset').disabled = false; document.getElementById('endless').value = '飽きるまで勝負し続ける'; clearInterval(thread); } } function endlessupdate(){ let speed = Math.floor(document.getElementById('speed').value); speed = speed <= 0 ? 1 : speed; for(let k = 0; k < speed-1; ++k){ ++numgame; let playersum = 0; for(let i = 0; i < 5; ++i) playersum += Math.floor(Math.random()*6)+1; let kingsum = 0; for(let i = 0; i < 10; ++i) kingsum += Math.floor(Math.random()*6)+1; if(kingsum > playersum){ ++kingwin; } else if(kingsum < playersum){ ++playerwin; } else { ++draw; } } game(); } function reset(){ document.getElementById('result').innerHTML = '勝負!!'; numgame=0; playerwin=0; kingwin=0; draw=0; }