JSFiddle - React, Tailwind, and code Playground
by Drath
JavaScript
function generate(xoffset, yoffset) {
special = "";
startx = 0;
starty = 0;
charx = 0;
chary = 0;
start = "";
defaulttile = "";
for (pass = 1; pass <= 4; pass++) {
var x = 1;
var y = 1;
switch (pass) {
case 1:
/////////////////////////////////////////////
//PRELIMINARY GENERATION
/////////////////////////////////////////////
var genchance = Math.floor(Math.random() * 20 + 1);
if (xoffset == 0 && yoffset == 0) {
var genchance = 100;
}
for (i = 1; i <= 5625; i++) {
var newx = x + xoffset;
var newy = y + yoffset;
switch (genchance) {
case 1:
//Lots of rocks
switch (Math.floor(Math.random() * 110 + 1)) {
case 1: case 2: case 3: case 4: case 5:
if (!tile[newx][newy]) { tile[newx][newy] = 'rock'; }
break;
case 7:
if (!tile[newx][newy]) { tile[newx][newy] = 'water'; }
break;
default:
if (!tile[newx][newy]) { tile[newx][newy] = 'grass'; }
break;
}
defaulttile = "grass";
break;
case 2:
//Lots of water - flooding - lots of dirt
switch (Math.floor(Math.random() * 90 + 1)) {
case 8:
if...