JSFiddle - React, Tailwind, and code Playground
HTML
<form name="form" method="post" action="">
<input name="one" type="button" id="sone" value="1" onclick="selectDoor(1)">
<input name="two" type="button" id="stwo" value="2" onclick="selectDoor(2)">
<input name="three" type="button" id="sthree" value="3" onclick="selectDoor(3)">
<input name="switch" type="button" id="bsw" value="switch" onclick="switchDoor()">
<input name="commit" type="button" id="bcm" value="commit" onclick="commitDoor()">
<input name="reset" type="button" id="bcm" value="reset" onclick="resetDoors()">
<br>
<input name="chsw" type="checkbox" id="chsw"> Auto Switch
<input name="chaut" type="checkbox" id="chaut"> Auto Play
<input name="chrst" type="checkbox" id="chrst"> Auto Reset
<input name="chsh" type="checkbox" id="chshow"> Show
</form>
<div id="win">Pick a door.</div>
<div id="show"></div>
<div id="tally">0/0</div>
<script type="text/javascript">resetDoors();</script>
JavaScript
var doors = [],
hdoors = [],
openDoor = undefined,
winDoor = 0,
open = false,
currentDoor,
score = 0,
plays = 0;
var resetDoors = function(){
winDoor = Math.floor(Math.random() * 3);
openDoor = undefined;
for ( var i = 0; i <= 2; i++) {
doors[i] = ((i === winDoor) ? "Car " : "Goat");
hdoors[i] = 'Door';
}
var sh = document.getElementById('chshow').checked;
document.getElementById('show').innerHTML = sh ? doors: hdoors;
document.getElementById('win').innerHTML = 'Pick a door.'
};
var selectDoor = function(sDoor) {
currentDoor = sDoor - 1;
open = false;
for(var i = 0; i <= 2; i++) {
if ( i === currentDoor ) {
hdoors[i] = 'Curr';
} else if ( i !== currentDoor && i !== winDoor && open === false) {
hdoors[i] = doors[i];
open = true;
openDoor = i;
} else {
hdoors[i] = 'Door';
}
}
document.getElementById('show').innerHTML = hdoors;
document.getElementById('win').innerHTML = 'Door ' + (currentDoor + 1) + ' chosen.';
if (document.getElementById('chsw').checked) {
switchDoor();
}
if (document.getElementById('chaut').checked) {
commitDoor();
}
};
var commitDoor = function() {
var win = currentDoor == winDoor;
score += win;
plays++;
document.getElementById('win').innerHTML = (win ? 'Win, car behind ': 'Lose, car behind ') + (winDoor + 1);
document.getElementById('show').innerHTML = doors;
document.getElementById('tally').innerHTML = score + '/' + plays;
if (document.getElementById('chaut').checked) {
resetDoors();
}
};
var switchDoor = function() {
var newDoor;
for (var i = 0; i <= 2; i++) {
if (openDoor !== i && currentDoor !== i) {
newDoor = i;
}
}
hdoors[currentDoor] = 'Door';
hdoors[newDoor] = 'Curr';
currentDoor = newDoor;
...