system "Kryptos_Roulette_System"

{Kryptos Roulette System
System designed from an excerpt written in "Gambling Systems that Win, 1978"

This system is works with all Outside (Even Money) bets.

The system starts by generating 6 random sequences for High/Low, Odd/Even and Red/Black.
It then uses a Martingale bet sequence until cycling through all 6 sequences.

The system is designed for Single Zero wheel to keep the house advantage to a minimum.
}
method "main"
begin
    While Starting a New Session
    begin
        Clear Record "high/low" data;
        Clear Record "odd/even" data;
        Clear Record "red/black" data;
        Clear Record "Random number" data;
        Clear Record "Loop counter" data;
        Clear Record "Next Store reference to Layout" data;
        Clear Record "Layout 1" Layout;
        Clear Record "Layout 2" Layout;
        Clear Record "high/low martingale" data;
        Clear Record "odd/even martingale" data;
        Clear Record "red/black martingale" data;
        Clear Record "high/low" data;
        Clear Record "odd/even" data;
        Set Flag "High/Low" to false;
        Set Flag "Even/Odd" to false;
        Set Flag "Red/Black" to false;
        Call "Initialize";
        Call "Generate Random Layouts";
        call "Make Bets";
        exit;
    end
    
    While On each Spin
    begin
        Add 1 on Record "high/low" Layout index;
        Add 1 on Record "odd/even" Layout index;
        Add 1 on Record "red/black" Layout index;

        //High/Low layout
        While Record "high/low" layout has won each time
        Or Record "high/low" Layout index > record "high/low" Layout count
        begin
            Set Flag "High/Low" to True;
        end
        Else
        begin
            Multiply 2 on Record "high/low martingale" data;
        end

        //Odd/Even layout
        While Record "odd/even" layout has won each time
        Or Record "odd/even" Layout index > record "odd/even" Layout count
        begin
            Set Flag "Even/Odd" to True;
        end
        Else
        begin
            Multiply 2 on Record "odd/even martingale" data;
        end

        //Red/Black layout
        While Record "red/black" layout has won each time
        Or Record "red/black" Layout index > record "red/black" Layout count
        begin
            Set Flag "Red/Black" to True;
        end
        Else
        begin
            Multiply 2 on Record "red/black martingale" data;
        end
            
        While Flag "High/Low" is True
        And  Flag "Even/Odd" is True
        And  Flag "Red/Black" is True
        begin
            Call "Initialize";
            Call "Generate Random Layouts";
        end

        call "Make Bets";
    end
end

method "Generate Random Layouts"
begin
    Duplicate Record "high/low" to Record "temp";
    Copy high to the Record "Layout 1" layout;
    Copy low to the Record "Layout 2" layout;
    Call "Generate Random Numbers";
    Duplicate Record "temp" to Record "high/low";
    Put 1 on Record "high/low" Layout index;

    Duplicate Record "odd/even" to Record "temp";
    Copy Even to the Record "Layout 1" layout;
    Copy Odd to the Record "Layout 2" layout;
    Call "Generate Random Numbers";
    Duplicate Record "temp" to Record "odd/even";
    Put 1 on Record "odd/even" Layout index;

    Duplicate Record "red/black" to Record "temp";
    Copy Red to the Record "Layout 1" layout;
    Copy Black to the Record "Layout 2" layout;
    Call "Generate Random Numbers";
    Duplicate Record "temp" to Record "red/black";
    Put 1 on Record "red/black" Layout index;
end

method "Generate Random Numbers"
begin
    Put 1 on Record "Loop counter" data;

    Loop until record "Loop counter" data > 6
    begin
        Generate Random Number between 1 & 2 into Record "Random Number" data;

        While Record "Random number" data = 1
        begin
            Copy Record "Layout 1" layout to Record "temp" layout;
        end
        Else
        begin
            Copy Record "Layout 2" layout to Record "temp" layout;
        end

        Add 1 on Record "Loop counter" data;
        Add 1 on Record "temp" Layout index;
    end
end

method "Initialize"
begin
    Put 1 on Record "high/low" Layout index;
    Put 1 on Record "odd/even" Layout index;
    Put 1 on Record "red/black" Layout index;
    Put 1  on Record "high/low martingale" data;
    Put 1  on Record "odd/even martingale" data;
    Put 1  on Record "red/black martingale" data;
    Set Flag "High/Low" to False;
    Set Flag "Even/Odd" to False;
    Set Flag "Red/Black" to False;
end

method "Make Bets"
begin
    While Flag "High/Low" is False
    begin
        Put 100% of Record "high/low martingale" data on Record "high/low" layout;
    end
    
    While Flag "Even/Odd" is False
    begin
        Put 100% of Record "odd/even martingale" data on Record "odd/even" layout;
    end
    
    While Flag "Red/Black" is False
    begin
        Put 100% of Record "red/black martingale" data on Record "red/black" layout;
    end
end

