JSFiddle - React, Tailwind, and code Playground
kattis problem #1, dice scoring
by Yurii Predborskyi
JavaScript
// input: start finish start finish
// output: Emma Tie Gunnar
let tests = [
{ gunnar: '1 4 1 4', emma: '1 6 1 6', answer: 'Emma' },
{ gunnar: '1 8 1 8', emma: '1 10 2 5', answer: 'Gunnar' },
{ gunnar: '2 5 2 7', emma: '1 5 2 5', answer: 'Gunnar' },
];
tests.forEach(test => {
function scoreDice(min, max) {
let sides = max - min + 1;
let sum = 0;
for (let i = min; i <= max; ++i) {
sum += i;
}
return sum / sides;
}
function toArr(input) {
return input.split(' ').map(item => Number.parseInt(item));
}
let gunnarDice = toArr(test.gunnar);
let gunnarScore = scoreDice(gunnarDice[0], gunnarDice[1]) + scoreDice(gunnarDice[2], gunnarDice[3]);
let emmaDice = toArr(test.emma);
let emmaScore = scoreDice(emmaDice[0], emmaDice[1]) + scoreDice(emmaDice[2], emmaDice[3]);
if (gunnarScore > emmaScore) {
console.log('Gunnar');
} else if (emmaScore > gunnarScore) {
console.log('Emma');
} else {
console.log('Tie');
}
});