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...