Quote:DJTeddyBearReturn percentage?

Because my Poker For Roulette idea uses a progressive jackpot, the only way I could accurately project the return / house edge, was to run several 500million spin simulations, then take those results and feed them into Excel, tweaking the paytable to get the bottom line I wanted.

Basically, my simulation produced two output files. One contains the total number of hits for each winning combination. Simply multiply by the paytable to find my result.

The other is a log of each partial and full progressive winner. It contains the spin number and the type of winner. The spin number is needed to calculate the meter increment before the progressive payment is made. If the progressive was a full jackpot, I reseed it. If it was a partial, but causes the jackpot bank to fall below the reseed value, I top it off. Thru an Excel worksheet that's some 50,000 lines long, I track each of these events, and add them to the non-progressive totals to come up with my progressive analysis.

You probably need to do something similar.

No, for a progressive jackpot you only need to do this:

1) Calculate the RTP on the base game,

2) Determine the % of coin in you accrue to the meter

3) Add (1) and (2).

You can determine the average time to hit the progressive, and therefore the average jackpot size, based on the probability of that award. But as long as your accrual rate is constant (which, from your description, it may not be?), you don't need any fancy math. Just base game % plus coin-in %.

Accrual rate? I assume you mean the portion of the bet that goes towards the jackpot.

I wanted to estimate the maximum jackpot size. I keep getting the feeling that the casinos don't mind paying winners - as long as the casino is winning too. But what they do mind is paying large sums at one time, regardless of how much they pocketed in the meantime.

For that, I needed the jackpot size.

Additionally, because initial simulations revealed that the partial jackpots can cause the jackpot bank to fall significantly below the re-seed value, I had to add a top-off option. I doubt that can easily be calculated.

So, even if all I wanted was an estimate of the House Edge, I think my long analysis is required.

On the other hand, if the casino uses a smaller increment until the seed money has been replenished, and a higher increment afterwards, then the seed doesn't affect the edge, so simple math will work, I think.

Bottom line: Even if simple math would work, I kinda like doing it the long way. Interesting things became apparent when I did that - like the Top-Off requirement.

So far I have a basic screen, symbols, nice little reel effect with sounds and I have already started the lengthy and fun conditional branching for payouts of the main game (not started the feature yet).

But based on what you said, I could quite easily run background (non visual) simulations millions of times and come up with some figures that way, quick and dirty :P.

miplet pointed me to this thread, because i had the same questions about the math behind the Atkin's slot like the thread starter.

I have experience with VB.net and programmed 5 nested for-loops.

First i checked if the program calculated correctly the 32^5 combinations (it did).

Next consideration... how do i tell the program what combinations he should count?

If i see how many combinations in the PDF of Atkins slot are listed... my 1st thought was... should i code a select case which has all lets say 55.000 cases from the symbols included?

Has someone a hint or idea for me, how i could teach the program to recognize the combinations?

So that the program knows: Steak-Steak-Wild-Steak = 4 in-a-row with steaks // Steak-Steak-Cake-Steak is not legal // Wild-Wild-Wild-Steak = 4 in-a-row and so on...

Any idea for me? I really have no clue how to do it!

Thanks for any help, best regards

Frank

I use a procedure, which makes a call to a function (for the sake of simplifying the procedure I created a function to handle some of the checking).

The loop will check every pay combination from top to bottom (best paying to worst) , it sends the symbol type of the particular

combination to a function (e.g. R1-C1, R1-C2, R1-C3, R1-C4, R1-C5 which would be the top line) and my function will then elaborate and loop check all symbols including feature wild symbols to find a left to right 3-5 in a row combination.

Then it steps to the next combination etc.....

It executes pretty quickly, the win/loss is calculated long before the reels stop.

Well it's something like this:

// I have 9 symbols 0-8, let's check them all.

For i := 0 to 8 Do

Begin

CalcPayLine(R1_C1, R1_C2, R1_C3, R1_C4, R1_C5, i);

//...... done 25 times for all 25 combinations obviously the R-C arrangement changes for each one.

End;

// The CalcPayLine function, The Seed is i from above ^.

// An insert from my own:

case Seed of

0:

begin // Handle the scatter.

if (gold_bonanza.Disp[1] = 0) OR (gold_bonanza.Disp[2] = 0) OR (gold_bonanza.Disp[3] = 0) then Inc(Symbol, 1);

if (gold_bonanza.Disp[4] = 0) OR (gold_bonanza.Disp[5] = 0) OR (gold_bonanza.Disp[6] = 0) then Inc(Symbol, 1);

if (gold_bonanza.Disp[7] = 0) OR (gold_bonanza.Disp[8] = 0) OR (gold_bonanza.Disp[9] = 0) then Inc(Symbol, 1);

if (gold_bonanza.Disp[10] = 0) OR (gold_bonanza.Disp[11] = 0) OR (gold_bonanza.Disp[12] = 0) then

begin

if (Symbol >= 1) then Inc(Symbol, 1);

end;

if (gold_bonanza.Disp[13] = 0) OR (gold_bonanza.Disp[14] = 0) OR (gold_bonanza.Disp[15] = 0) then

begin

if (Symbol >= 2) then Inc(Symbol, 1);

end;

end

else

begin // All but scatter, also checking wild/substitutes.

if (S1 = Seed) OR (gold_bonanza.Sym[S1].Sub) then Inc(Symbol, 1);

if (S2 = Seed) AND (Symbol >= 1) OR (gold_bonanza.Sym[S2].Sub) AND (Symbol >= 1) then Inc(Symbol, 1);

if (S3 = Seed) AND (Symbol >= 2) OR (gold_bonanza.Sym[S3].Sub) AND (Symbol >= 2) then Inc(Symbol, 1);

if (S4 = Seed) AND (Symbol >= 3) OR (gold_bonanza.Sym[S4].Sub) AND (Symbol >= 3) then Inc(Symbol, 1);

if (S5 = Seed) AND (Symbol >= 4) OR (gold_bonanza.Sym[S5].Sub) AND (Symbol >= 4) then Inc(Symbol, 1);

end;

end;

[/code\

thank you very much for your replies. It helps a little bit.

But to not spam my questions about the programming i sent you @GrimR a PM.

Thanks for posting the piece of code you did, it's a bit hard to understand :) because this kind of programs is really new to me.

Best regards

Frank