JSFiddle - React, Tailwind, and code Playground

by XarX

HTML

<pre id=painted></pre>

JavaScript

var _painted = 0, $painted = document.getElementById('painted');

var attributes = 6,
points = 0,
lastRolls = new Array();


var stat = new Array();
for (i=0;i<attributes;i++) stat[i] = 0;
for (attribute=0; attribute<attributes; attribute++) {
 	stat[attribute] = roll4d6k3();
  rolledNumbers[stat[attribute]]++;
  points+= convertStatToPoints(stat[attribute]);
}

$painted.textContent+= "Average Points: " + Math.round(100*points)/100 + "\n\n";

for (i=0;i<20;i++) $painted.textContent+= ((i<10)?"0":"") + i + " -> " + Math.round(10000*rolledNumbers[i]/(runs*attributes))/10000 + "\n"; 
function roll4d6k3() {
	var smallest = 6;
  var output = 0;
	for (i=1;i<=4;i++) {
  	var temp = rollRandom(1,6);
  	output+= temp;
    //$painted.textContent+= output + " (+" + temp + ")\n";
    if (temp < smallest) smallest = temp;
  }
  output-=smallest;
  //$painted.textContent+= output + " ( Smallest: " + smallest + ")";
  return output;
}

for (i=0;i<attribute;i++)
	

function convertStatToPoints(x) {
	if (x < 3) $painted.textContent+= "Err (Stat too low)";
	else if (x <= 13) return (x-8);
  else if (x > 13 && x <= 16) return ((x-14)*2+7);
  else if (x > 16 && x <= 18) return ((x-17)*3+14);
  else if (x > 18) $painted.textContent+= "Err (Stat too high)";
  else $painted.textContent+= "Err (No Integer Input)";
}

function rollRandom(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min +1)) + min; 
}  

$painted.textContent+= "\n Done!";