JSFiddle - React, Tailwind, and code Playground
HTML
<div id="ship">
</div>
JavaScript
// by /u/ Redman1024
// with fixes from /u/Zimposity
// choose quadrant
ships = []
for (var i=0;i<13;i++){
var quadrantno = Math.random()
var quadrant = ""
if (quadrantno < 0.25) {quadrant = " ♡ "}
else if (quadrantno < 0.5) {quadrant = " ♠ "}
else if (quadrantno < 0.75) {quadrant = " ♢ "}
else {quadrant = " ♣ "}
// choose 1st char type
var typeno = Math.floor(Math.random()*100)
if (typeno < 75) {type1 = "human/alternian"}
else if (typeno < 85) {type1 = "beforian"}
else if (typeno < 95) {type1 = "ancestor"}
else {type1 = "other"}
// choose 2nd char type. more likely to be similar to 1st
var typeno = Math.floor(Math.random()*100)
if (type1 === "human/alternian")
{
if (typeno < 80) {type2 = "human/alternian"}
else if (typeno < 90) {type2 = "ancestor"}
else if (typeno < 95) {type2 = "beforian"}
else {type2 = "other"}
}
else if (type1 === "beforian")
{
if (typeno < 80) {type2 = "beforian"}
else if (typeno < 90) {type2 = "human/alternian"}
else if (typeno < 95) {type2 = "ancestor"}
else {type2 = "other"}
}
else if (type1 === "ancestor")
{
if (typeno < 80) {type2 = "ancestor"}
else if (typeno < 90) {type2 = "human/alternian"}
else if (typeno < 95) {type2 = "beforian"}
else {type2 = "other"}
}
else if (type1 === "other")
{
if (typeno < 80) {type2 = "human/alternian"}
else if (typeno < 90) {type2 = "beforian"}
else if (typeno < 95) {type2 = "ancestor"}
else {type2 = "other"}
}
else {}
// assign character from 1st group
char = ""
if (type1 === "human/alternian")
{
var charno = Math.floor(Math.random()*60)
if (charno > 57) {char = "Roxy"}
else if (charno > 54) {char = "Jane"}
else if (charno > 51) {char = "Jake"}
else if (charno > 48) {char = "Dirk"}
else if (charno > 45) {char = "John"}
else if (charno > 42) {char = "Rose"}
else if (charno > 39) {char = "Dave"}
else if (charno > 36) {char = "Jade"}
else if (charno > 33) {char = "Aradia"}
else if (charno > 30)...