system "The_Final_One"

{//The Final One

  for Even Money Bets for Single Zero Roulette
  using the Le Partage option

  (you get half your bet back if 0 hits)

For instructions, download documentation
}
method "main"
begin
    While Starting a New Session
    begin
        Call "Initialize";
        Exit;
    end
    
    While Number 0 has not hit each time
    or    Flag "Bets Placed" is True
    begin
        Call "Check for Zero";
        Call "Calculate Balance";
        Call "Check Bankroll Balance";
        Call "Check Top Limit";
        Call "Determine Win/Loss";
        Call "Layout Even-Odd";
        Call "Layout Red-Black";
        Call "Layout High-Low";
        Put 2 on Record "Even-Odd Bet Layout" layout;
        Put 2 on Record "Red-Black Bet Layout" layout;
        Put 2 on Record "High-Low Bet Layout" layout;
        Set Flag "Bets Placed" to True;
    end
end

method "Calculate Balance"
begin
    While Flag "Bets Placed" is False
    begin
        Return;
    end
    
    Put 100% of Bankroll on Record "Temp. Storage" data;
    Subtract 100% of Record "Actual Bankroll" data on Record "Temp. Storage" data;
    Add 100% of Record "Temp. Storage" data on Record "Bankroll" data;
    Put 100% of Bankroll on Record "Actual Bankroll" data;
end

method "Check for Zero"
begin
    While Number 0 has hit each time
    begin
        Ask "Zero Hit.  This Session Ends.
                  
                  Do you want to continue?";
        Call "Check Yes-No Results";
    end
end

method "Check Bankroll Balance"
begin
    While Record "Bankroll" data < 6
    begin
        Ask "Not enough Bankroll Units.
                  
                  This Session ENDS.
                  
                  Do you want to continue?";
        Call "Check Yes-No Results";
    end
    
    While Record "Bankroll" data <= Record "Walk Limit" data 
    begin
        Ask "Bankroll is LESS than Walk Limit.
                  
                  This Session ENDS.
                  
                  Do you want to continue?";
        Call "Check Yes-No Results";
    end
end

method "Check Yes-No Results"
begin
    While Last answer was Yes
    begin
        Call "Reset";
        Exit;
    end
    Else
    begin
        Stop Session;
    end
end

method "Check Top Limit"
begin
    While Record "Bankroll" data >= Record "Top Limit" data
    begin
        Put 100% of Record "Top Limit" data on Record "Walk Limit" data;
        Add 1  on Record "Top Limit" data;
    end
end

method "Determine Win/Loss"
begin
    While Flag "Bets Placed" is False
    begin
        Return;
    end
    
    While Record "Even-Odd Bet Layout" layout has won each time
    begin
        Set Flag "Even-Odd Same Bet" to False;
    end
    Else
    begin
        Set Flag "Even-Odd Same Bet" to True;
        
        While Record "High-Low Bet Layout" layout has won each time
        begin
            Set Flag "High-Low Same Bet" to False;
        end
        Else
        begin
            Set Flag "High-Low Same Bet" to True;
            
            While Record "Red-Black Bet Layout" layout has won each time
            begin
                Set Flag "Red-Black Same Bet" to False;
            end
            Else
            begin
                Set Flag "Red-Black Same Bet" to True;
            end
        end
    end
end

method "Layout Even-Odd"
begin
    While Even has hit each time
    And  Flag "Even-Odd Same Bet" is False
    begin
        Copy Odd to the Record "Even-Odd Bet Layout" layout;
    end
    
    While Even has hit each time
    And  Flag "Even-Odd Same Bet" is True
    begin
        Copy Even to the Record "Even-Odd Bet Layout" layout;
    end
    
    While Odd has hit each time
    And  Flag "Even-Odd Same Bet" is False
    begin
        Copy Even to the Record "Even-Odd Bet Layout" layout;
    end
    
    While Odd has hit each time
    And  Flag "Even-Odd Same Bet" is True
    begin
        Copy Odd to the Record "Even-Odd Bet Layout" layout;
    end
end

method "Layout Red-Black"
begin
    While Red has hit each time
    And  Flag "Red-Black Same Bet" is False
    begin
        Copy Black to the Record "Red-Black Bet Layout" layout;
    end
    
    While Red has hit each time
    And  Flag "Red-Black Same Bet" is True
    begin
        Copy Red to the Record "Red-Black Bet Layout" layout;
    end
    
    While Black has hit each time
    And  Flag "Red-Black Same Bet" is False
    begin
        Copy Red to the Record "Red-Black Bet Layout" layout;
    end
    
    While Black has hit each time
    And  Flag "Red-Black Same Bet" is True
    begin
        Copy Black to the Record "Red-Black Bet Layout" layout;
    end
end

method "Layout High-Low"
begin
    While high has hit each time
    And  Flag "High-Low Same Bet" is False
    begin
        Copy low to the Record "High-Low Bet Layout" layout;
    end
    
    While high has hit each time
    And  Flag "High-Low Same Bet" is True
    begin
        Copy high to the Record "High-Low Bet Layout" layout;
    end
    
    While low has hit each time
    And  Flag "High-Low Same Bet" is False
    begin
        Copy high to the Record "High-Low Bet Layout" layout;
    end
    
    While low has hit each time
    And  Flag "High-Low Same Bet" is True
    begin
        Copy low to the Record "High-Low Bet Layout" layout;
    end
end

method "Initialize"
begin
    Load Single Wheel;
    Apply Le Partage;
    Set Flag "Bets Placed" to false;
    Set Flag "Even-Odd Same Bet" to false;
    Set Flag "Red-Black Same Bet" to false;
    Set Flag "High-Low Same Bet" to false;
    Clear Record "Bankroll" data;
    Clear Record "Top Limit" data;
    Clear Record "Walk Limit" data;
    Clear Record "Even-Odd Bet Layout" data;
    Clear Record "Red-Black Bet Layout" data;
    Clear Record "High-Low Bet Layout" data;
    Clear Record "Actual Bankroll" data;
    Clear Record "Temp. Storage" data;
    Call "Reset";
end

method "Reset"
begin
    Put 100% of Bankroll on Record "Actual Bankroll" data;
    Put 8  on Record "Bankroll" data;   //BR = Bankroll
    Put 17  on Record "Top Limit" data; // TL = Top Limit
    Put 0  on Record "Walk Limit" data; // WL = Walk Limt
    Set Flag "Bets Placed" to False;
    Set Flag "Even-Odd Same Bet" to False;
    Set Flag "High-Low Same Bet" to False;
    Set Flag "Red-Black Same Bet" to False;
end

