## Wizard Recommends

• 300% + 100 Free Spins
• \$11000 Welcome Bonus
• \$3000 Welcome Bonus
Last Updated: May 20, 2019

# Source code for Cancellation Betting System analyzer

## Introduction

The following program is written in C++. It is quite simple, anybody with a little experience with C++ should be able to understand how it works. I apologize about the lack of documentation but by following the logic it shouldn’t be hard to see what is going on.

```//
//  cancellation system analyzer
//  10/19/1998
//

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <stdio.h>

void tenbet();

int main()
{
char ch;

do
{
tenbet();

cerr << "Play again? ";
cin >> ch;
}
while ((ch == 'y') || (ch == 'Y'));

return 0;
}

void tenbet()
{
int maxloss, num, bet[1000], lpt, rpt, i, j, curbet, bank, result[2], randwin, g;

long totbet, spins;

cerr << "Enter maximum loss ";        cin  >> maxloss;
cerr << "Enter number of trials ";    cin  >> num;
cerr << "Roulette(1) or craps(2)? ";  cin  >> g;

result[0] = 0;
result[1] = 0;
totbet    = 0;
spins     = 0;

if (g == 1)
{
randwin = 32767 * 18/38;
}
else
{
randwin = 32767 * 244 / 495;
}

for (i = 1; i <= num; i++)
{
bank =  0;
lpt  =  1;
rpt  = 10;

for (j = 1; j <= 10; j++)
{
bet[j] = 1;
}

do
{
if (rpt == lpt)
{
curbet = bet[rpt];
}
else
{
curbet = bet[lpt] + bet[rpt];
}

while ((maxloss+bank < curbet)&&(maxloss+bank > 0))
{
spins++;

if (maxloss + bank >= bet[lpt])
{
totbet += bet[lpt];

if (rand() <= randwin)
{
bank += bet[lpt];
lpt++;
}
else
{
bank     -= bet[lpt];
bet[lpt] *= 2;
}
}
else
{
totbet += (maxloss + bank);

if (rand() <= randwin)
{
bet[lpt] -= (maxloss + bank);
bank     += (maxloss + bank);
}
else
{
bank     -= (maxloss + bank);
}
}

if (rpt == lpt)
{
curbet = bet[rpt];
}
else
{
curbet = bet[lpt] + bet[rpt];
}
}

if (maxloss + bank > 0)
{
totbet+=curbet;
spins++;

if (rand() <= randwin)
{
lpt++;
rpt--;
bank     += curbet;
}
else
{
rpt++;
bet[rpt]  = curbet;
bank     -= curbet;
}
}
}
while ((lpt <= rpt) && (maxloss + bank > 0));

if (maxloss + bank == 0)
{
result[1]++;
}
else
{
result[0]++;
}

if (i % 100000 == 0)
{
cerr << i << "\n";
}
}

cerr << "Maximum loss: "        << maxloss << "\n";
cerr << "Probability of loss: " << (float)(result[1])/(float)(num) << "\n";
cerr << "Average spins: "       << (float)(spins)/(float)(num) << "\n";
cerr << "Average bet: "         << (float)(totbet)/(float)(num)<<"\n";
cerr << "Wins: "                << result[0]<<"\nLosses: "<<result[1]<<"\n";
cerr << "Total bet: "           << totbet<<"\n";
cerr << "Total win/loss: "      << (result[0]*10)-(result[1]*maxloss) << "\n";
cerr << "Total spins: "         << spins << "\n";
cerr << "Net loss: "            << (float)((result[0]*10)-(result[1]*maxloss))/(float)totbet << "\n";
}```

Written by:

## Wizard Recommends

• 300% + 100 Free Spins
• \$11000 Welcome Bonus
• \$3000 Welcome Bonus