system "Straight Ahead One Dozen"
{
Play 1st Dozen with a D'Alembert progression.
Each step is the same number repeated three times.  On a win, fall back 3 steps
in the progression.  The session ends when the progression returns to step 4 or less.
}
method "main"
begin
while starting a new session
    begin
    Set Flag "Bet Placed" to False
    put 1 on record "Tier" data
    put 1 on record "Step" data
    put 0 on record "S1 Bankroll" data
{    put 0 on record "D1 Prev Bankroll" data}
    put 100% bankroll on record "Lowest Bankroll" data
    put 0 on record "Downdraw" data
    put 0 on record "S1 Losses" data
    put 0 on record "S1 Hits" data
{    put 0 on record "Spin Count" data
    put 0 on record "LastTier" data
    put 0 on record "LastStep" data}
    end

{call "initialize"}

if Flag "Bet Placed" True
    begin
        call "Process"
    end
call "bet"

end

method "Process"

    begin
{    put 100% record "Tier" data on record "LastTier" data
    put 100% record "Step" data on record "LastStep" data
    add 1 on record "Spin Count" data}
    if Bankroll < record "Lowest Bankroll" data
        begin
            put 100% bankroll on record "Lowest Bankroll" data
        end

    if 1st Dozen hit each
        begin
            Calculate Outcome 1st Dozen to record "S1 Hits" data
            Add 100% net to record "S1 Bankroll" data
            Subtract 1 from record "Tier" data
            if record "Tier" data <1
                begin
                    put 1 on record "Tier" data
                    put 0 on record "Step" data
                end
            if record "Tier" data=1 and record "Step" data<=1 and Bankroll>0
            begin
                put 1 on record "Step" data
                Stop Session
            end
{            begin
                if record "Tier" data =2 and record "Step" data <=1
                begin
                    put 1 on record "Tier" data
                    put 1 on record "Step" data
                    Stop Session
                end
                else}
{            end
            if record "S1 Bankroll" data > record "S1 Prev Bankroll" data
                    if record "Tier" data <1
                    begin
                        put 1 on record "Tier" data
                    end
                begin
                    put 1 on record "Tier" data
                    put 0 on record "Step" data
                    put 100% record "S1 Bankroll" data on record "S1 Prev Bankroll" data
                end}
        end
    else
        begin
            Add 1 on record "S1 Losses" data
            Add 1 to record "Step" data
            if record "Step" data >= 4
            begin
                Add 1 to record "Tier" data
                put 1 on record "Step" data
            end
            Subtract 100% of record "S1 Current Bet" data from record "S1 Bankroll" data
        end

    end {method Process}

method "bet"

    begin
        Put 100% record "Tier" data on 1st Dozen
        put 100% record "Tier" data on record "S1 Current Bet" data
        if record "S1 Current Bet" data > record "S1 High Bet" data then
        begin
            Duplicate Information from record "S1 Current Bet" to record "S1 High Bet"
        end

        Set Flag "Bet Placed" True
    end


