Double Streets to Winning Numbers System By Bo

This is a unusual system I found in the default systems in roulette Xtreme. Its called Double-streets-to-winning-numbers System By Bo. I have no idea who ‘Bo’ is. When you load the system up you get this screen.

Input variables:

  1. Select a win goal in units for each sequence in session.
  2. Select the Bankroll for the entire session (can be many sequences).
  3. Choose how many spins to track each time
  4. Choose whether to track double streets by either fewest or most hits.
  5. Choose how many remaining numbers will trigger abandoning of sequences (important because of the mathematical probability of occasional numbers “sleeping” for over 100 spins.
  6. Choose starting Unit to place bets.
  7. Choose how many sequences before ending Session

So you select your parameters and the system gets loaded up. The gist of the system is that it tracks number that have or have not shown up in the last X number of spins. After you have tracked these, you place a double street (sometimes called a 6 number) bet on 4 positions. If the number comes up and you win, you remove the chip. After so many spins, you move on to single street bets, then on to split bets and finally straight up bets.

Detailed Steps

  • When beginning any session, track spins with no bets for User input #3 above ignoring zeros.
  • Select from the tracked spins, the four double streets with the fewest (or most) hits selected from
    User input #4 above.
  • Then, bet units selected from User input #6 above on each of the selected double streets for five
    (5) bets, unless if any double street wins then that double street is removed from the selection.
  • If after five (5) bets any double streets remain, then bet units selected from User input #6 on
    each of the single streets contained in the remaining selection for six (6) bets.
  • If any street wins, then that street is removed from the selection.
  • If after six bets, any street remains then bet units from User input #6 on each of the splits in the remaining streets for six (6) bets. (The middle number in each remaining street will therefore be overlapped and covered by two units)
  • If either number covered any split is hit then those two numbers are removed from the selection.
    If a middle number, covered by two (2) splits bets is hit then ALL three (3) numbers (forming a
    street) are removed from the selection.
  • If after six (6) bets any numbers remain then bet units from User input #6 on each of those
    numbers for 18 bets.
  • If any number is hit on this or any subsequent bet sequence then that number is removed from
    the selection.
  • If after 18 bets any numbers remain then bet units from User input #6 (DOUBLED) on each of those numbers for 18 bets. (For example: if User input #6 was 1 unit, then DOUBLED will be 2 units). If after 18 DOUBLED unit bets any numbers remain, then bet User input #6 (DOUBLED, DOUBLED) on each of those numbers for 18 bets. (For example: if User input #6 was 1 unit, then DOUBLED, DOUBLED will be 4 units).
  • If at any time only the User input #5 remaining numbers or less occur during H,I and J, or the WIN GOAL User input #1 is met or completion of J above, then again bet a unit from User input #6 on the four (4) least/most hit double streets tracked from the previous User input #3 spins.

Video Analysis

Conclusion

As with all systems it does eventually fail. I ran it a few times with 10000 spins and the result is always the same, just a slow, steady decline.

                    
system "Double-Streets-to-Winning_II.dgn"

{Double-streets-to-winning-numbers system
 See documentation for explanation
}
method "main"
begin
    While Starting a New Session
    begin
        Call "Initialize";
        Call "Select Input Information";
        exit;
    end
    
    Call "Track Spins";
    Call "Check Bankroll";
    Call "Check if we exceed maximum bet process";
    Call "Check Win Goal";

//Start new sequence"
    Set Flag "Start New Sequence" to True;
    
    Loop until Flag "Start New Sequence" is False
    begin
        Set Flag "Start New Sequence" to False;
        Call "Determine Ready to Place Bet";

        If Flag "Ready to Place Bet" is True
        begin
            Add 1 to Record "Total Bet Counter" data;
            Call "Do Line (Double Streets)";
            Call "Do Streets";
            Call "Do Splits";
            Call "Do Straight-up";
        end

        if Flag "Start New Sequence" is False
        begin
            Exit;
        end
    end
end

method "Determine Ready to Place Bet"
begin
    While Flag "Ready to Place Bet" is False
    And  Record "Tracked Spin List" layout count = Record "Spins to track" data
    begin
        Call "Find Double Streets";
        Call "Select Double Street";
        Set Flag "Ready to Place Bet" to True;
        Set Flag "Bet on Line (Double Street)" to True;
    end
end

//Make bets based on where you are in the Betting process
method "Make Bets"
begin
    While Flag "Ready to Place Bet" is False
    begin
        Return;
    end

    Loop Until Record "temp layout 1" layout index >
                                            Record "temp layout 1" layout count
    begin
        While Record "temp layout 1" data not = 0
        begin
            Put 100 % of Record "Units to Bet" data to Record "temp layout 1" layout;
        end
        
        Add 1 to Record "temp layout 1" layout index;
        Add 1 to Record "temp layout 1" data index;
    end
end

method "Count Number of Layouts to Bet"
begin
    clear Record "temp layout 2" Layout;
    Put 0  to Record "Number of Layouts to Bet" data;

    Loop Until Record "temp layout 1" layout index >
                                            Record "temp layout 1" layout count
    begin
        While Record "temp layout 1" Data not = 0
        begin
            {Before adding to number of layouts to Bet, we first check to make sure this is
             not a duplicate Bet.  This can happen on Straight-up numbers which would give us
             an incorrect count.}
            While Record "temp layout 1" layout not = Record "temp layout 2" layout
            begin
                Add 1 to Record "Number of Layouts to Bet" data;
                Copy Record "temp layout 1" layout to Record "temp layout 2" layout;
            end
        end
        
        Add 1 to Record "temp layout 1" layout index;
        Add 1 to Record "temp layout 1" data index;
    end
end

method "Check Win Goal"
begin
    While Flag "Ready to Place Bet" is True
    And  Bankroll >= Record "Total Win Goal for sequence" data 
    begin
        Put 100 % of Bankroll to Record "Total Win Goal for sequence" data;
        Add 100 % of Record "Win Goal in Units for each Sequence" data to
                                    Record "Total Win Goal for sequence" data;
        Put 100 % of Bankroll to Record "Remaining Bankroll" data;
        Subtract 100 % of Record "Bank Balance for entire Session" data to
                                                Record "Remaining Bankroll" data;
        Add 1  to Record "Sequence Counter" data;
        Call "Check if we exceed total Sequences";
        Call "Reset for next sequence";
    end
end

method "Check if we exceed total Sequences"
begin
    While Flag "Ready to Place Bet" is True
    And  Record "Total # of Sequences" data > 0
    And  Record "Sequence Counter" data >= Record "Total # of Sequences" data
    begin
        Display "You have completed ALL of your Sequences.
                  
                  The Session will end.  Check Bankroll indicator
                  for your Profit margin.";
        Call "Reset for next sequence";
        Stop Session;
    end
end

method "Check if we exceed maximum bet process"
begin
    While Flag "Ready to Place Bet" is True
    And  Record "Total Bet Counter" data > 70
    begin
        Call "Reset for next sequence";
    end
end

method "Check Bankroll"
begin
    While Flag "Ready to Place Bet" is True
    And  Bankroll <= Record "Remaining Bankroll" data
    begin
        Display "Your Starting Bankroll has been depleted.
                  
                 The Session will end.  Check Bankroll indicator
                 for your Profit margin.";
        Call "Reset for next sequence";
        Stop Session;
    end
end

method "Reset for next sequence"
begin
    Set Flag "Start New Sequence" to True;
    Set Flag "Ready to Place Bet" to False;
    Set Flag "Bet on Line (Double Street)" to False;
    Set Flag "Bet on Number" to False;
    Set Flag "Bet on Street" to False;
    Set Flag "Bet on Split" to False;
    Put 0  to Record "Total Bet Counter" data;
//    Put 100 % of Record "Spins to track" data to Record "Total Tracked Spins" data;
    Put 100 % of Record "Starting Unit for each sequence" data to Record "Units to Bet" data;
end

method "Do Line (Double Streets)"
begin
    While Flag "Ready to Place Bet" is False
    Or Flag "Bet on Line (Double Street)" is False
    begin
        Return;
    end
    
    While Flag "Bet on Line (Double Street)" is True
    begin
        Duplicate Record "Line List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Cross off Bets that Hit";

        Duplicate Record "temp layout 1" to Record "Line List";
    end

    While Record "Total Bet Counter" data < 6
    And  Flag "Bet on Line (Double Street)" is True
    begin
        Duplicate Record "Line List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Count Number of Layouts to Bet";
        Call "Check Remaining Layouts";

        Duplicate Record "Line List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Make Bets";
        Return;
    end
    
    Set Flag "Bet on Line (Double Street)" to False;
    Set Flag "Bet on Street" to True;
end

method "Do Streets"
begin
    While Flag "Ready to Place Bet" is False
    Or Flag "Bet on Street" is False
    begin
        Return;
    end
    
    While Flag "Bet on Street" is True
    begin
        Duplicate Record "Street List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Cross off Bets that Hit";

        Duplicate Record "temp layout 1" to Record "Street List";
    end
    
    While Record "Total Bet Counter" data < 12
    And  Flag "Bet on Street" is True
    begin
        Duplicate Record "Street List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Count Number of Layouts to Bet";
        Call "Check Remaining Layouts";

        Duplicate Record "Street List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Make Bets";
        Return;
    end
    
    Set Flag "Bet on Street" to False;
    Set Flag "Bet on Split" to True;
end

method "Do Splits"
begin
    While Flag "Ready to Place Bet" is False
    Or Flag "Bet on Split" is False
    begin
        Return;
    end
    
    While Flag "Bet on Split" is True
    begin
        Duplicate Record "Split List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Cross off Bets that Hit";

        Duplicate Record "temp layout 1" to Record "Split List";
    end
    
    While Record "Total Bet Counter" data < 18
    And  Flag "Bet on Split" is True
    begin
        Duplicate Record "Split List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Count Number of Layouts to Bet";
        Call "Check Remaining Layouts";

        Duplicate Record "Split List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Make Bets";
        Return;
    end
    
    Set Flag "Bet on Split" to False;
    Set Flag "Bet on Number" to True;
end

method "Do Straight-up"
begin
    While Flag "Ready to Place Bet" is False
    Or Flag "Bet on Number" is False
    begin
        Return;
    end
    
    While Flag "Bet on Number" is True
    begin
        Duplicate Record "Number List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Cross off Bets that Hit";

        Duplicate Record "temp layout 1" to Record "Number List";

        If Record "Total Bet Counter" data = 36
        Or Record "Total Bet Counter" data = 54
        begin
            Add 100 % of Record "Units to Bet" data to Record "Units to Bet" data;
        end
    end
    
    While Record "Total Bet Counter" data < 72
    And  Flag "Bet on Number" is True
    begin
        Duplicate Record "Number List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Count Number of Layouts to Bet";

        If Record "Abandon Threshold" data >= Record "Number of Layouts to Bet" data
        begin
            Call "Reset for next sequence";
            Return;
        end
        
        Call "Check Remaining Layouts";

        Duplicate Record "Number List" to Record "temp layout 1";
        Put 1 to Record "temp layout 1" layout index;
        Put 1 to Record "temp layout 1" data index;

        Call "Make Bets";
        Return;
    end
    
    Set Flag "Bet on Number" to False;
end

method "Check Remaining Layouts"
begin
    While Record "Number of Layouts to Bet" data = 0
    begin
        Call "Reset for next sequence";
    end
end

method "Cross off Bets that Hit"
begin
    Loop Until Record "temp layout 1" layout index >
                                            Record "temp layout 1" layout count
    begin
        Call "Cross off Layout";
        Add 1  on Record "temp layout 1" layout index;
        Add 1  on Record "temp layout 1" data index;
    end
end

method "Cross off Layout"
begin
    While Record "temp layout 1" layout has won each time
    begin
        While Flag "Bet on Line (Double Street)" is True
        begin
            Put 100 % of Record "temp layout 1" data to Record "Street List" data index;
            Call "Cross off Street";
        end

        While Flag "Bet on Street" is True
        begin
            Put 100 % of Record "temp layout 1" data to Record "Split List" data index;
            Call "Cross off Split";
        end
        
        While Flag "Bet on Split" is True
        begin
            Put 100 % of Record "temp layout 1" data to Record "Number List" data index;
            Call "Cross off Straight-up";
        end

        Put 0 to Record "temp layout 1" data;
    end
end

method "Cross off Street"
begin
    Put 100 % of Record "Street List" data to Record "Split List" data index;
    Call "Cross off Split";
    Put 0 to Record "Street List" Data;
    Add 1 to Record "Street List" data index;
    Put 100 % of Record "Street List" data to Record "Split List" data index;
    Call "Cross off Split";
    Put 0 to Record "Street List" Data;
end

method "Cross off Split"
begin
    Put 100 % of Record "Split List" data to Record "Number List" data index;
    Call "Cross off Straight-up";
    Put 0 to Record "Split List" Data;
    Add 1 to Record "Split List" data index;
    Put 100 % of Record "Split List" data to Record "Number List" data index;
    Call "Cross off Straight-up";
    Put 0 to Record "Split List" Data;
end

method "Cross off Straight-up"
begin
    Put 0  to Record "Number List" data;
    Add 1  to Record "Number List" data index;
    Put 0  to Record "Number List" data;
end

method "Select Double Street"
begin
    Put 9999  to Record "Lowest Hits" data;
    Put 0     to Record "Highest Hits" data;
    Call "Find Lowest-Highest Hits";
    
    While Record "Track Type (1=Fewest, 2= Most) Hits" data = 1
    begin
        Call "Select Lowest";
    end
    Else
    begin
        Call "Select Highest";
    end
end

method "Find Lowest-Highest Hits"
begin
    Put 1 to Record "Double-Street Layout" data index;

    Loop Until Record "Double-Street Layout" data index >
                                        Record "Double-Street Layout" data count
    begin
        If Record "Double-Street Layout" data < Record "Lowest Hits" data
        begin
            Put 100 % of Record "Double-Street Layout" data to Record "Lowest Hits" data;
        end

        If Record "Double-Street Layout" data > Record "Highest Hits" data
        begin
            Put 100 % of Record "Double-Street Layout" data to Record "Highest Hits" data;
        end

        Add 1  to Record "Double-Street Layout" data index;
    end
end

method "Select Lowest"
begin
    Put 100 % of Record "Lowest Hits" data to Record "temp data 1" data;
    clear Record "Line List" layout;
    clear Record "Line List" Data;

    Clear Record "Street List" Layout;
    Clear Record "Street List" Data;
    Clear Record "Split List" Layout;
    Clear Record "Split List" Data;
    Clear Record "Number List" Layout;
    Clear Record "Number List" Data;

    Put 1 to Record "Street List" layout index;
    Put 1 to Record "Split List" layout index;
    Put 1 to Record "Number List" layout index;

    Loop Until Record "Line List" layout index > 4
    or  Record "temp data 1" Data > Record "Highest Hits" Data
    begin
        Call "Find four Double Streets";
        Add 1  to Record "temp data 1" data;
    end
end

method "Select Highest"
begin
    Put 100 % of Record "Highest Hits" data to Record "temp data 1" data;
    clear Record "Line List" layout;
    clear Record "Line List" Data;

    Put 1 to Record "Street List" layout index;
    Put 1 to Record "Split List" layout index;
    Put 1 to Record "Number List" layout index;

    Loop Until Record "Line List" layout index > 4
    or  Record "temp data 1" Data < Record "Lowest Hits" Data
    begin
        Call "Find four Double Streets";
        Subtract 1  to Record "temp data 1" data;
    end
end

method "Find four Double Streets"
begin
    Put 1 to Record "Double-Street Layout" data index;
    Put 1 to Record "Double-Street Layout" layout index;

    Loop Until Record "Double-Street Layout" data index >
                                        Record "Double-Street Layout" data count
    begin
        While Record "Double-Street Layout" data = Record "temp data 1" data
        begin
            While Record "Line List" data index <= 4
            begin
                Copy Record "Double-Street Layout" layout to Record "Line List" layout;
                Put 100 % of Record "Street List" layout index to
                                                        Record "Line List" data;
                Call "Select Street";

                Add 1   to Record "Line List" layout index;
                Add 1   to Record "Line List" data index;
                Put -2  to Record "Double-Street Layout" data;

                if Record "Double-Street Layout" data index>1
                begin
                    Subtract 1 from Record "Double-Street Layout" data index;
                    Put -1  to Record "Double-Street Layout" data;
                    Add 1  to Record "Double-Street Layout" data index;
                end

                if Record "Double-Street Layout" data index <
                                        Record "Double-Street Layout" data count
                begin
                    Add 1   to Record "Double-Street Layout" data index;
                    Put -1  to Record "Double-Street Layout" data;
                    Subtract 1 from Record "Double-Street Layout" data index;
                end
            end
        end
        
        Add 1  to Record "Double-Street Layout" data index;
        Put 100% of Record "Double-Street Layout" data index to
                    Record "Double-Street Layout" layout index;
    end
end

method "Select Street"
begin
    While Record "Line List" layout = Line(1-6)
    begin
        Copy Street(1-3) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(4-6) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(4-9)
    begin
        Copy Street(4-6) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(7-9) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(7-12)
    begin
        Copy Street(7-9) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(10-12) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(10-15)
    begin
        Copy Street(10-12) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(13-15) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(13-18)
    begin
        Copy Street(13-15) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(16-18) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(16-21)
    begin
        Copy Street(16-18) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(19-21) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(19-24)
    begin
        Copy Street(19-21) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(22-24) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(22-27)
    begin
        Copy Street(22-24) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(25-27) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(25-30)
    begin
        Copy Street(25-27) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(28-30) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    While Record "Line List" layout = Line(28-33)
    begin
        Copy Street(28-30) to Record "Street List" layout;
        Call "Point to Next Street";
        Copy Street(31-33) to Record "Street List" layout;
        Call "Point to Next Street";
        Return;
    end
    
    Copy Street(31-33) to Record "Street List" layout;
    Call "Point to Next Street";
    Copy Street(34-36) to Record "Street List" layout;
    Call "Point to Next Street";
end

method "Point to Next Street"
begin
    Put 100 % of Record "Split List" layout index to Record "Street List" data;
    Add 1   to Record "Street List" data index;
    Call "Select Split";
    Add 1 to Record "Street List" layout index;
end

method "Select Split"
begin
    While Record "Street List" layout = Street(1-3)
    begin
        Copy Split(1-2) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(2-3) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(4-6)
    begin
        Copy Split(4-5) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(5-6) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(7-9)
    begin
        Copy Split(7-8) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(8-9) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(10-12)
    begin
        Copy Split(10-11) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(11-12) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(13-15)
    begin
        Copy Split(13-14) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(14-15) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(16-18)
    begin
        Copy Split(16-17) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(17-18) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(19-21)
    begin
        Copy Split(19-20) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(20-21) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(22-24)
    begin
        Copy Split(22-23) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(23-24) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(25-27)
    begin
        Copy Split(25-26) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(26-27) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(28-30)
    begin
        Copy Split(28-29) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(29-30) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    While Record "Street List" layout = Street(31-33)
    begin
        Copy Split(31-32) to Record "Split List" layout;
        Call "Point to Next Split";
        Copy Split(32-33) to Record "Split List" layout;
        Call "Point to Next Split";
        Return;
    end
    
    Copy Split(34-35) to Record "Split List" layout;
    Call "Point to Next Split";
    Copy Split(35-36) to Record "Split List" layout;
    Call "Point to Next Split";
end

method "Point to Next Split"
begin
    Put 100 % of Record "Number List" layout index to Record "Split List" data;
    Add 1 to Record "Split List" data index;
    Call "Select Straight-up";
    Add 1 to Record "Split List" layout index;
end

method "Select Straight-up"
begin
    While Record "Split List" layout = Split(1-2)
    begin
        Copy Number 1 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 2 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(2-3)
    begin
        Copy Number 2 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 3 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(4-5)
    begin
        Copy Number 4 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 5 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(5-6)
    begin
        Copy Number 5 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 6 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(7-8)
    begin
        Copy Number 7 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 8 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(8-9)
    begin
        Copy Number 8 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 9 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(10-11)
    begin
        Copy Number 10 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 11 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(11-12)
    begin
        Copy Number 11 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 12 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(13-14)
    begin
        Copy Number 13 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 14 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(14-15)
    begin
        Copy Number 14 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 15 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(16-17)
    begin
        Copy Number 16 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 17 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(17-18)
    begin
        Copy Number 17 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 18 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(19-20)
    begin
        Copy Number 19 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 20 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(20-21)
    begin
        Copy Number 20 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 21 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(22-23)
    begin
        Copy Number 22 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 23 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(23-24)
    begin
        Copy Number 23 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 24 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(25-26)
    begin
        Copy Number 25 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 26 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(26-27)
    begin
        Copy Number 26 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 27 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(28-29)
    begin
        Copy Number 28 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 29 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(29-30)
    begin
        Copy Number 29 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 30 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(31-32)
    begin
        Copy Number 31 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 32 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(32-33)
    begin
        Copy Number 32 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 33 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(34-35)
    begin
        Copy Number 34 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 35 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Return;
    end
    
    While Record "Split List" layout = Split(35-36)
    begin
        Copy Number 35 to Record "Number List" layout;
        Call "Point to Next Straight-up";
        Copy Number 36 to Record "Number List" layout;
        Call "Point to Next Straight-up";
    end
end

method "Point to Next Straight-up"
begin
    Put 1 to Record "Number List" data;
    Add 1 to Record "Number List" layout index;
    Put 100% of Record "Number List" layout index to Record "Number List" data index;
end

method "Find Double Streets"
begin
    While Record "Total Spins" data < Record "Spins to track" data
    begin
        Return;
    end
    
    clear record "Double-Street Layout" data;
    Put 1 to Record "Tracked Spin List" layout index;

    loop until Record "Tracked Spin List" layout index >
                                        Record "Tracked Spin List" layout count
    begin
        Call "Calculate Double Street from Tracked Spins";
        Add 1 to Record "Tracked Spin List" layout index;
    end
end

method "Calculate Double Street from Tracked Spins"
begin
    While Record "Tracked Spin List" layout = Number 1
    Or Record "Tracked Spin List" layout = Number 2
    Or Record "Tracked Spin List" layout = Number 3
    begin
        Put 1 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 4
    Or Record "Tracked Spin List" layout = Number 5
    Or Record "Tracked Spin List" layout = Number 6
    begin
        Put 1 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 2 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 7
    Or Record "Tracked Spin List" layout = Number 8
    Or Record "Tracked Spin List" layout = Number 9
    begin
        Put 2 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 3 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 10
    Or Record "Tracked Spin List" layout = Number 11
    Or Record "Tracked Spin List" layout = Number 12
    begin
        Put 3 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 4 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 13
    Or Record "Tracked Spin List" layout = Number 14
    Or Record "Tracked Spin List" layout = Number 15
    begin
        Put 4 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 5 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 16
    Or Record "Tracked Spin List" layout = Number 17
    Or Record "Tracked Spin List" layout = Number 18
    begin
        Put 5 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 6 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 19
    Or Record "Tracked Spin List" layout = Number 20
    Or Record "Tracked Spin List" layout = Number 21
    begin
        Put 6 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 7 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 22
    Or Record "Tracked Spin List" layout = Number 23
    Or Record "Tracked Spin List" layout = Number 24
    begin
        Put 7 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 8 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 25
    Or Record "Tracked Spin List" layout = Number 26
    Or Record "Tracked Spin List" layout = Number 27
    begin
        Put 8 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 9 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 28
    Or Record "Tracked Spin List" layout = Number 29
    Or Record "Tracked Spin List" layout = Number 30
    begin
        Put 9 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 10 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 31
    Or Record "Tracked Spin List" layout = Number 32
    Or Record "Tracked Spin List" layout = Number 33
    begin
        Put 10 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        Put 11 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
        return;
    end
    
    While Record "Tracked Spin List" layout = Number 34
    Or Record "Tracked Spin List" layout = Number 35
    Or Record "Tracked Spin List" layout = Number 36
    begin
        Put 11 to Record "Double-Street Layout" data index;
        Add 1 to Record "Double-Street Layout" data;
    end
end

method "Track Spins"
begin
    While Number 0 has hit each time
    Or Number 00 has hit each time
    begin
        Return;
    end

    add 1 to Record "Total Spins" data;
    Set Max Record "Tracked Spin List" layout index;
    Add 1 to Record "Tracked Spin List" layout index;

    if record "Tracked Spin List" layout index > record  "Spins to track" data
    begin
        move list up by 1 for record "Tracked Spin List" layout;
        Put 100% of record  to "Spins to track" data to
                                    record "Tracked Spin List" layout index;
    end

    copy last number to record "Tracked Spin List" layout;
end

method "Initialize"
begin
    clear record "Abandon Threshold" data;
    clear record "Bank Balance for entire Session" data;
    clear record "Highest Hits" data;
    clear record "Lowest Hits" data;
    clear record "Double-Street Layout" Layout;
    clear record "Number of Layouts to Bet" data;
    clear record "Starting Unit for each sequence" data;

    clear record "Line List" layout;
    clear record "Street List" Layout;
    clear record "Split List" Layout;
    clear record "Number List" layout;

    Put 1  to Record "Spins to track" data;
    clear record "Total Bet Counter" data;
    clear record "Total # of Sequences" data;
    clear record "Total Spins" data;
    clear record "Track Type (1=Fewest, 2= Most) Hits" data;
    clear record "Tracked Spin List" layout;
    Put 0  to Record "Total Profit" data;
    clear record "Units to Bet" data;
    clear record "Win Goal in Units for each Sequence" data;
    set flag "Input Ok" to False;

    Put 0 to Record "temp data 1" data;

    copy list [  Line(1-6), Line(4-9),   Line(7-12), Line(10-15),
               Line(13-18), Line(16-21), Line(19-24),Line(22-27),
               Line(25-30), Line(28-33), Line(31-36)]
                                                to record "Double-Street Layout" layout;
end

method "Select Input Information"
begin
    loop until Flag "Input Ok" is True
    begin
        Group
        begin
            Display "Session will END when ALL sequences are met
                      or your starting Bankroll has been depleted.";

            Input Data "Enter Bankroll for entire Session" to
                                    Record "Bank Balance for entire Session" data;

            Input Dropdown "What Table Layout do you want to use?

                      1:=European Layout
                      2:=American Layout" to Record "Table Layout" data;

            Input Data "Enter your Win Goal in Units for each Sequence.
                      You can have many sequences in a Session." to
                                Record "Win Goal in Units for each Sequence" data;

            Input Data "How many spins to track each time?
                      Range: 1 to 800 spins:" to Record "Spins to track" data;

            Input Dropdown "Track Double Streets by either

                      1:=Fewest Hits
                      2:=Most Hits" to Record "Track Type (1=Fewest, 2= Most) Hits" data;

            Input Data "How many remaining numbers will trigger
                      abandoning a Sequence? Range: 0 to 12 numbers:" to
                                                    Record "Abandon Threshold" data;

            Input Data "Enter Starting Unit for each sequence" to
                                    Record "Starting Unit for each sequence" data;

            Input Data "How many Sequences for this Session
                      Note: 0 = unlimited sequences." to
                                    Record "Total # of Sequences" data;

        end

        call "Validate Input";
    end
end
//=================================================================
//Calculate Data and Check Data Conditions
//=================================================================
method "Validate Input"
begin
    set Flag "Input Ok" to True;
    Put 100 % of Record "Bank Balance for entire Session" data to Bankroll;
    Put 100 % of Record "Win Goal in Units for each Sequence" data to
                                    Record "Total Win Goal for sequence" data;
    Add 100 % of Bankroll to Record "Total Win Goal for sequence" data;
    
    Put 100 % of Record "Starting Unit for each sequence" data to
                                                    Record "Units to Bet" data;
                                                    
    While Record "Spins to track" data > 800
    Or Record "Spins to track" data = 0
    begin
        Display "Tracked Spins must be in the range of 1 and 800.";
        set Flag "Input Ok" to false;
    end
    
    While Record "Abandon Threshold" data > 12
    begin
        Display "Remaining numbers to Abandon sequence must be less than 12 numbers";
        set Flag "Input Ok" to false;
    end
    
    While Record "Table Layout" data = 1
    begin
        Load Single Wheel;
    end
    Else
    begin
        Load Double Wheel;
    end
end