JSFiddle - React, Tailwind, and code Playground

by Kamran Ayub

HTML

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<table class="table">
    <tr>
        <th>Word Score</th>
        <th>Level</th>
        <th>Attack</th>
        <th>Defense</th>
        <th>Power</th>
    </tr>
    <tbody id="tests">
    </tbody>
</table>

CSS

th {
    font-weight: bold;
}
.power {
    font-weight: bold;
}

JavaScript

var calc = function(score, level, attack, defense){
    
    score *= 3;
    
    // base
    var b = (((2 * level + 10) / 250)*(attack / defense)*(score))+2;
    
    // modifier
    var m = 1.5 * 3 * 1 * getRandomArbitrary(0.85, 1);
    
    return Math.floor(b * m)
};

var getRandomArbitrary = function(min, max) {
    return Math.random() * (max - min) + min;
}

var tests = [
    { score: 8, level: 1, attack: 10, defense: 10 },
    { score: 8, level: 2, attack: 15, defense: 10 },
    { score: 8, level: 3, attack: 23, defense: 10 },
    { score: 8, level: 50, attack: 210, defense: 190 },
    { score: 20, level: 50, attack: 210, defense: 190 }
];

tests.forEach(function(test) {
    var $tr = $("<tr>");
    var dmg = calc(test.score, test.level, test.attack, test.defense);
    
    $tr.append("<td class='score'>" + test.score + "</td>");
    $tr.append("<td class='level'>" + test.level + "</td>");
    $tr.append("<td class='attack'>" + test.attack + "</td>");
    $tr.append("<td class='defense'>" + test.defense + "</td>");
    $tr.append("<td class='power'>" + dmg + "</td>");
    
    $("#tests").append($tr);
});