JSFiddle - React, Tailwind, and code Playground

by Mark McFadden

HTML

<input type="button" id="theButton" value="Run">
<div id="output"></div>

CSS

#output {
    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    font-size: 16px;
}

JavaScript

$('#theButton').click( function() {
   $('#output').html(showZombieWalking());
});

var totalStepsTaken = 0;
var numberOfStepsToSunflower = 6;
var eachPathAtThisStepCount = 2;

//**********************************
//start method to show students
//**********************************
function showZombieWalking(){
    var walkingOutput = "";
    while (notDone()) {
        walkingOutput += stepForward();
        walkingOutput += checkForAPathToTheRight();
        if(thereIsAPathToTheRight()){
            walkingOutput += turnRight();
        }else{
            walkingOutput += dontTurnRight();
        }
    }
    
    if( isDone()){
        walkingOutput += "****************<br/>";
        walkingOutput += "****************<br/>";
        walkingOutput += "You made it!<br/>";
        walkingOutput += "****************<br/>";
        walkingOutput += "****************<br/>";
    }
    totalStepsTaken = 0;
    return walkingOutput;
}
//**********************************
//end method to show students
//**********************************

//for more advanced grades the students can learn and 
//understand these helper methods
//these are the actual functions called above
function stepForward(){
	totalStepsTaken++;//take a step forward
    return "One step forward....<br/>";
}

function checkForAPathToTheRight(){
    return "Is there a path to my right?<br/>";
}

function turnRight(){
	var output = "****************<br/>";
	output += "Yes! Turn right.<br/>";
	output += "****************<br/>";
    return output;
}

function dontTurnRight(){
	return "No path to the right.<br/>";
}

function notDone(){
	return totalStepsTaken < numberOfStepsToSunflower;
}

function isDone(){
	return totalStepsTaken == numberOfStepsToSunflower;
}

function thereIsAPathToTheRight(){
	if(notDone() && 
		totalStepsTaken % eachPathAtThisStepCount == 0){
			return true;
	}else{
		return false;
	}
}