Home Gambling Info Odds Gambling Online Ask the Wizard Play for Fun Blog Radio Video | |
Reason #2 why the Wizard likes Bovada: No-hassle practice games Most online casinos spend more effort trying to separate you from your money than they do trying to give you a good experience. They have all kinds of popup windows, they usually make you download their software, and if they do offer play-in-browser games then you have to register an account before you can play. And if you register they start sending you emails trying to get you to deposit real money. But Bovada is different. They have no popup windows at all, and their practice games play right in your browser, with no download, and no registration required. You don’t even have to give up your email address. It couldn’t be simpler: just one click and you’re playing the game. I wish all online casinos showed this much respect for their players. Other casinos practically ask for your first born child to play for free. Meanwhile Bovada is patient and does not twist anybody’s arm to play for real money. You can play as long as you like for free with no obligation. The real-money games are available if that’s your preference, but if not, you can play the free practice games for as long as you like without hassle. |
Source code for Cancellation Betting System analyzerLast Update: May 10, 2011 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";
}
|
Copyright © 1998-2012 Wizard of Odds Consulting, Inc. All rights reserved. • About | Privacy & Terms | Site Map | Links | Contact The Wizard’s other sites: Wizard of Vegas | Wizard of Macau | Math Problems • Recommended: Vegas Click | |