<script type="text/javascript">
/*
Copyright (c) 2003. All Rights reserved.
If you use this script, please email me and let me know, thanks!
Andrew Hedges
andrew@efficacy.net
If you want to hire me to write JavaScript for you, see my resume.
http://efficacy.net/resume/
*/
doc = document;
function init()
{
// set up objects
stob = doc.forms["teaser"].stayer;
rob = doc.forms["teaser"].randomer;
swob = doc.forms["teaser"].switcher;
}
function proveIt()
{
// create/clear out array
doors = new Array(false,false,false);
// reset tallies
stwin = 0;
stloss = 0;
rwin = 0;
rloss = 0;
swwin = 0;
swloss = 0;
// clear out textareas
stob.value = "";
rob.value = "";
swob.value = "";
// loop through 100 times
for (l=100;l>0;l--)
{
// decide which door holds the prize
d = rand(3);
doors[d] = true;
// randomly pick a door
p = rand(3);
// randomly remove one of the loser doors
removed = false;
while (!removed)
{
r = rand(3);
if (r != d && r != p)
{
removedvalue = r;
removed = true;
}
}
// for randomer, randomly switch/stay
ss = rand(2);
if (ss==0)
{
// switch
switchstay = false;
while (!switchstay)
{
s1 = rand(3);
if (s1 != p && s1 != removedvalue)
{
switchstayvalue = s1;
switchstay = true;
}
}
}
else
{
// stay
switchstayvalue = p;
}
// for switcher, switch
for (s2=0;s2<3;s2++)
{
if (s2 != p && s2 != removedvalue)
{
switchervalue = s2;
switcher = true;
break;
}
}
// determine outcomes
// stayer
if (d==p)
{
stwin++;
stob.value = stwin + " Winner\n" + stob.value;
}
else
{
stloss++;
stob.value = stloss + " Loser\n" + stob.value;
}
// randomer
if (d==switchstayvalue)
{
rwin++;
rob.value = rwin + " Winner\n" + rob.value;
}
else
{
rloss++;
rob.value = rloss + " Loser\n" + rob.value;
}
// switcher
if (d==switchervalue)
{
swwin++;
swob.value = swwin + " Winner\n" + swob.value;
}
else
{
swloss++;
swob.value = swloss + " Loser\n" + swob.value;
}
}
// write final tallies
stob.value = stwin + " winners\n" + stloss + " losses" + "\n-----\n" + stob.value;
rob.value = rwin + " winners\n" + rloss + " losses" + "\n-----\n" + rob.value;
swob.value = swwin + " winners\n" + swloss + " losses" + "\n-----\n" + swob.value;
}
// The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)
// See: http://www.msc.cornell.edu/~houle/JavaScript/randomizer.html
// Usage: rand(n) returns random integer between 0 and n-1
rnd.today = new Date();
rnd.seed = rnd.today.getTime();
function rnd()
{
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
}
function rand(number)
{
return Math.ceil(rnd()*number)-1;
}
</script>