system "456 Turbo Street"
{
Designed by TurboGenius

For instructions, go to this url:
http://gambling.projectsydney.com/viewtopic.php?t=598&postdays=0&postorder=asc&start=0
}
method "main"
begin
    while starting a new session
    begin
        //initialize
        put 100% of bankroll to record "High Bankroll" data;
        clear record "Last street" layout;
        clear record "Track streets" layout;
        clear record "Streets to bet" layout;
        put 1 on record "Progression" data;
        set flag "Repeat" to false;
        set flag "Found" to false;
        exit;
    end

    if flag "Repeat" is true
    begin
        //check win or loss
        call "Check win/loss";
    end

    //track the streets
    call "Track street";

    if flag "Repeat" is true
    begin
        //place the bets
        call "Place bets";
    end
end

//Track streets and look for a repeat
method "Track street"
begin
    copy last street to record "Last street" layout;

    //this section looks for a repeat.  If one is found, then move
    //the streets between the repeat to Streets to bet record
    call "Check for repeat";
    if  flag "Found" is true
    and flag "Repeat" is false
    begin
        call "Remove streets";

        set flag "Repeat" to true;
        clear record "Streets to bet" layout;

        set max to record "Track streets" layout index;

        copy last street to record "Streets to bet" layout;
        put 2 on record "Streets to bet" layout index;

        loop until record "Last street" layout = record "Track streets" layout
        begin
            copy record "Track streets" layout to record "Streets to bet" layout;
            add 1 to record "Streets to bet" layout index;
            subtract 1 from record "Track streets" layout index;
        end
    end

    //Track streets
    set max to record "Track streets" layout index;
    add 1 to record "Track streets" layout index;
    copy last street to record "Track streets" layout;
end

//Do to a bug in version 2.0.12, this method is needed.
//it will be removed in the next version 2.0.13.
//Bug: if record "Last street" layout is found in record "Track streets" layout
//this loop until routine along with a flag "Found" is used instead
method "Check for repeat"
begin
    set flag "Found" to false;
    put 1 on record "Track streets" layout index;

    loop until record "Track streets" layout index > record "Track streets" layout count
    begin
        if record "Last street" layout = record "Track streets" layout then
        begin
            set flag "Found" to true;
            return;
        end

        add 1 to record "Track streets" layout index;
    end
end


//Place bets from the Street to bet record
//use the Progression record to determine how much to bet
method "Place bets"
begin
    put 1 on record "Streets to bet" layout index;

    loop until record "Streets to bet" layout index > record "Streets to bet" layout count
    begin
        put 100% of record "Progression" data to record "Streets to bet" layout;
        add 1 to record "Streets to bet" layout index;
    end
end

//test for a Win or Loss.
//If a loss, add the street to the Street to bet record.
method "Check win/loss"
begin
    if Any Street Bet has won each time
    begin
        call "Check bankroll";
        set flag "Repeat" to false;
    end
    else
    begin
        set max to record "Streets to bet" layout index;
        add 1 to record "Streets to bet" layout index;
        copy last street to record "Streets to bet" layout;
    end
end

//check the bankroll against the High bankroll.
method "Check bankroll"
begin
    if bankroll < record "High Bankroll" data then
    begin
        add 1 to record "Progression" data;
    end
    else
    begin
        //leave this commented out to keep progression at a minimum
        put 100% of bankroll to record "High Bankroll" data;
        put 1 on record "Progression" data;
    end
end

//this performs house-keeping on the Track streets record to keep the
//list manageable.
method "Remove streets"
begin
    put 1 on record "Track streets" layout index;

    loop until record "Last street" layout = record "Track streets" layout
    begin
       move list up by 1 to record "Track streets" layout;
    end
end
