/**
* 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;
}