EPT NLHE
2014 Monte Carlo
HTML
<script type="text/javascript" src="http://www.amcharts.com/lib/3/amcharts.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/serial.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/themes/none.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/exporting/amexport.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/exporting/rgbcolor.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/exporting/canvg.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/exporting/filesaver.js"></script><div id="chartdiv"></div>
CSS
#chartdiv {
width : 650px;
height : 500px;
}
JavaScript
// modify these values and the min/max for valueAxis in line 150
var iterations = 100;
var games = 100;
var playercount = 200;
var buyin = 2200;
var multiplier = 1;
var i;
var tracking = [];
var chartData2 = [];
for (var iteration = 0; iteration < iterations; iteration++) {
var bank = [];
for (i = 0; i < playercount; i++) {
var p = {player: i, wins: 0, cash: 0};
bank.push (p);
}
for (var g = 0; g < games; g++) {
bank = shuffle (bank);
for (i = 0; i < playercount; i++) {
bank[i].cash -= buyin;
bank[i].cash += EPTpayout(i+1);
}
}
bank.sort (sortByCash);
tracking.push (bank);
}
for (i = 0; i < playercount; i++) {
var cashdata = [];
for (var iteration = 0; iteration < iterations; iteration++) {
cashdata.push (tracking[iteration][i].cash);
}
cashdata.sort (function(a, b){return b-a});
chartData2.push ({pos: i+1, min: cashdata[cashdata.length-1]/games*100/buyin, max: cashdata[0]/games*100/buyin, med: median(cashdata)/games*100/buyin});
}
function sortByCash (a, b) {
if (a.cash < b.cash) {
return 1;
} else {
return -1;
}
}
function median(values) {
values.sort( function(a,b) {return a - b;} );
var half = Math.floor(values.length/2);
if(values.length % 2)
return values[half];
else
return (values[half-1] + values[half]) / 2.0;
}
function EPTpayout (position) {
payout = 0;
if (position < 28) {
var prizepool = 388000;
switch (position) {
case 27:
case 26:
case 25:
case 24:
payout = 0.0103*prizepool;
break;
case 23:
case 22:
case 21:
payout = 0.0108*prizepool;
break;
case 20:
case 19:
case 18:
payout = 0.0120*prizepool;
break;
case 17:
case 16:
...