Best Stack Forward
The Bicycle Casino Mega Millions X
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
var entries = 8; // number of entries per player
var entrycost = 260; // price of entry
var players = 1000; // # of players to evaluate for each ITM %
var mincash = 600; // median minimum cash
var stackbuyout = 3700; // amount paid for extra qualifying stacks
var itm = {
min: 10, // minimum evaluated ITM %
max: 25 // maximum evaluated ITM %
};
var chartData2 = [];
for (i = itm.min; i < itm.max + 1; i++) {
var results = [];
for (j = 0; j < players; j++) {
playercashes = 0;
for (k = 0; k < entries; k++) {
if (Math.random() < i / 100.0) {
playercashes++;
}
}
results.push(playercashes);
}
results.sort (function (a, b) {return a-b;});
var cashesmed = results[Math.round(players/2)];
if (players%2 == 0) {cashesmed = (results[Math.floor(players/2)]+results[Math.floor(players/2)+1])/2};
var chartmin = -(entries*entrycost);
var chartmed = -(entries*entrycost);
var chartmax = -(entries*entrycost);
if (results[0] > 0) {chartmin += mincash + (results[0]-1) * stackbuyout};
if (cashesmed > 0) {chartmed += mincash + ((cashesmed>1) ? (cashesmed-1) * stackbuyout : 0)};
if (results[players-1] > 0) {chartmax += mincash + (results[players-1]-1) * stackbuyout};
chartData2.push({
pos: i,
min: chartmin/(entrycost),
med: chartmed/(entrycost),
max: chartmax/(entrycost)
});
}
AmCharts.ready(function () {
var chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData2;
chart.pathToImages = "http://www.amcharts.com/lib/3/images/";
chart.categoryField = "pos";
// AXES
// category
var categoryAxis = chart.categoryAxis;
categoryAxis.gridAlpha = 0;
categoryAxis.tickLength = 0;
categoryAxis.axisAlpha = 0;
categoryAxis.unit = "%";
categoryAxis.title = "Results Based on " + entries + " Entries by \n" +
...