JSFiddle - React, Tailwind, and code Playground
by XarX
HTML
<div id="console-log"></div>
CSS
.console-line
{
font-family: monospace;
margin: 2px;
color: #ddd;
}
body {
background-color: #333;
}
JavaScript
var consoleLine = "<p class=\"console-line\"></p>";
console = {
log: function (text) {
$("#console-log").append($(consoleLine).html(text));
}
};
const orc = {
type: "Big Orc",
attack: 200,
defense: 100,
stealth: 1,
};
const goblin = {
type: "Goblin",
attack: 90,
defense: 10,
stealth: 1,
};
const crystal = {
type: "Crystal",
attack: 150,
defense: 90,
stealth: 80,
};
const shadowgoblin = {
type: "Shadowgoblin",
attack: 125,
defense: 30,
stealth: 90,
};
const human = {
type: "Human",
attack: 125,
defense: 50,
stealth: 1,
};
const humanDef = {
type: "HumanDef",
attack: 125,
defense: 60,
stealth: 1,
};
const humanAtt = {
type: "HumanAtt",
attack: 135,
defense: 50,
stealth: 1,
};
const humanCitadel = {
type: "HumanCitadel",
attack: 140,
defense: 80,
stealth: 1,
};
var runs = 100;
var wins = [0,0];
var types = ["",""];
var remainingVictors = [0,0];
var logThis = false;
var logThisDetail = false;
for (var run=0; run<runs; run++) {
var unit = [];
var amount = [10,10];
// Army 1
unit[0] = Object.create(humanCitadel);
amount[0] = 2800;
types[0] = unit[0].type;
// Army 2
unit[1] = Object.create(goblin);
amount[1] = 10000;
types[1] = unit[1].type;
var round = 0;
var emergencyExit = 100;
if (logThis) {
console.log("Battle begins..");
console.log("Army 1: " + amount[0] + " soldiers.");
console.log("Army 2: " + amount[1] + " soldiers.");
console.log(".");
}
while (amount[0] > 0 && amount[1] > 0 && emergencyExit > 0) {
emergencyExit--;
if (logThis) console.log(".Round " + round);
var hits = [0,0];
for (var army=0;army<2;army++) {
if (logThis) console.log("..Army " + (army+1) + " attacks:")
for (var attack=0; attack < Math.min(Math.max(amount[army]*0.05, 100), amount[army]); attack++) {
//for (var attack=0; attack < amount[army]; attack++) {
var strike = Math.floor(Math.random()*unit[army].attack+1);
if (strike >...