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" +
       ...