System "Straight Ahead"
{
**************************************
* System by Zocker, posted by Perkin *
*         on the VIP Lounge          *
**************************************
          Rx-ed by St0rm0r
--------------------------------------
           00-c0mpatible
--------------------------------------
Bet on all 12 streets or apply differential betting on each of the 12 streets.
(user input)
Each street is following its own progression:
1,1,1,1,1,1,1,1,1,1,1,1,(12x1)2,2,2,2,2,2,2,2,2,2,2,2,(12x2)3,3,3... etc.
On a win, go back 12 positions in the progression.
If the progression is shorter then 18 figures, reset to 1,1,1,1,1,1,1,1,1,1,1,1,(12x1)
On a loss, go up 1 position in the progression.
If the zero hits, we cancel the first step of the progression.

Every 24 spins, the progressions are swithched:
the street with the highest progression gets the lowest progression, and so on.

Of course we do not start with 1 unit on all 12 streets at once:
Start with the first street.
Then add each time one street until all streets are covered.
--------------------------------------
}
method "main"
begin
// section 1: do this once
while starting new session
    begin
    call "init"
    end

// section 2: do the tracking
subtract 1 record"start spins"data
add 1 record"24 counter"data
if record"24 counter"data = 25
    begin
    put 1 record"24 counter"data
    if record"Sw"data = 1
        begin call "switch progressions" end
    end
track last number for 1 record"last N"layout
if record"Z"data = 1
    begin
    if record"last N"layout = number 0 or record"last N"layout = number 00
        begin
        put 100% record"pro1"data index record"hold"data
        clear record"temp"data
        put 2 record"pro1"data index
        loop until record"pro1"data index > record"pro1"data count
            begin
            put 100% record"pro1"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro1"data index
            end
        duplicate record"temp" record"pro1"
        put 100% record"hold"data record"pro1"data index
        subtract 1 record"pro1"data index
        if record"pro1"data index < 1
            begin put 1 record"pro1"data index end

        put 100% record"pro2"data index record"hold"data
        clear record"temp"data
        put 2 record"pro2"data index
        loop until record"pro2"data index > record"pro2"data count
            begin
            put 100% record"pro2"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro2"data index
            end
        duplicate record"temp" record"pro2"
        put 100% record"hold"data record"pro2"data index
        subtract 1 record"pro2"data index
        if record"pro2"data index < 1
            begin put 1 record"pro2"data index end

        put 100% record"pro3"data index record"hold"data
        clear record"temp"data
        put 2 record"pro3"data index
        loop until record"pro3"data index > record"pro3"data count
            begin
            put 100% record"pro3"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro3"data index
            end
        duplicate record"temp" record"pro3"
        put 100% record"hold"data record"pro3"data index
        subtract 1 record"pro3"data index
        if record"pro3"data index < 1
            begin put 1 record"pro3"data index end

        put 100% record"pro4"data index record"hold"data
        clear record"temp"data
        put 2 record"pro4"data index
        loop until record"pro4"data index > record"pro4"data count
            begin
            put 100% record"pro4"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro4"data index
            end
        duplicate record"temp" record"pro4"
        put 100% record"hold"data record"pro4"data index
        subtract 1 record"pro4"data index
        if record"pro4"data index < 1
            begin put 1 record"pro4"data index end

        put 100% record"pro5"data index record"hold"data
        clear record"temp"data
        put 2 record"pro5"data index
        loop until record"pro5"data index > record"pro5"data count
            begin
            put 100% record"pro5"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro5"data index
            end
        duplicate record"temp" record"pro5"
        put 100% record"hold"data record"pro5"data index
        subtract 1 record"pro5"data index
        if record"pro5"data index < 1
            begin put 1 record"pro5"data index end

        put 100% record"pro6"data index record"hold"data
        clear record"temp"data
        put 2 record"pro6"data index
        loop until record"pro6"data index > record"pro6"data count
            begin
            put 100% record"pro6"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro6"data index
            end
        duplicate record"temp" record"pro6"
        put 100% record"hold"data record"pro6"data index
        subtract 1 record"pro6"data index
        if record"pro6"data index < 1
            begin put 1 record"pro6"data index end

        put 100% record"pro7"data index record"hold"data
        clear record"temp"data
        put 2 record"pro7"data index
        loop until record"pro7"data index > record"pro7"data count
            begin
            put 100% record"pro7"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro7"data index
            end
        duplicate record"temp" record"pro7"
        put 100% record"hold"data record"pro7"data index
        subtract 1 record"pro7"data index
        if record"pro7"data index < 1
            begin put 1 record"pro7"data index end

        put 100% record"pro8"data index record"hold"data
        clear record"temp"data
        put 2 record"pro8"data index
        loop until record"pro8"data index > record"pro8"data count
            begin
            put 100% record"pro8"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro8"data index
            end
        duplicate record"temp" record"pro8"
        put 100% record"hold"data record"pro8"data index
        subtract 1 record"pro8"data index
        if record"pro8"data index < 1
            begin put 1 record"pro8"data index end

        put 100% record"pro9"data index record"hold"data
        clear record"temp"data
        put 2 record"pro9"data index
        loop until record"pro9"data index > record"pro9"data count
            begin
            put 100% record"pro9"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro9"data index
            end
        duplicate record"temp" record"pro9"
        put 100% record"hold"data record"pro9"data index
        subtract 1 record"pro9"data index
        if record"pro9"data index < 1
            begin put 1 record"pro9"data index end

        put 100% record"pro10"data index record"hold"data
        clear record"temp"data
        put 2 record"pro10"data index
        loop until record"pro10"data index > record"pro10"data count
            begin
            put 100% record"pro10"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro10"data index
            end
        duplicate record"temp" record"pro10"
        put 100% record"hold"data record"pro10"data index
        subtract 1 record"pro10"data index
        if record"pro10"data index < 1
            begin put 1 record"pro10"data index end

        put 100% record"pro11"data index record"hold"data
        clear record"temp"data
        put 2 record"pro11"data index
        loop until record"pro11"data index > record"pro11"data count
            begin
            put 100% record"pro11"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro11"data index
            end
        duplicate record"temp" record"pro11"
        put 100% record"hold"data record"pro11"data index
        subtract 1 record"pro11"data index
        if record"pro11"data index < 1
            begin put 1 record"pro11"data index end

        put 100% record"pro12"data index record"hold"data
        clear record"temp"data
        put 2 record"pro12"data index
        loop until record"pro12"data index > record"pro12"data count
            begin
            put 100% record"pro12"data record"temp"data
            add 1 record"temp"data index
            add 1 record"pro12"data index
            end
        duplicate record"temp" record"pro12"
        put 100% record"hold"data record"pro12"data index
        subtract 1 record"pro12"data index
        if record"pro12"data index < 1
            begin put 1 record"pro12"data index end
        end
    end

// section 3: act on a loss
put 1 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro1"data index
    if record"pro1"data index > record"pro1"data count
        begin
        subtract 1 record"pro1"data index
        put 100% record"pro1"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro1"data index
            put 100% record"temp"data record"pro1"data
            add 1 record"run"data
            end
        subtract 11 record"pro1"data index
        end
    put 1 record"pro"data index
    put 100% record"pro1"data record"pro"data
    end
put 2 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro2"data index
    if record"pro2"data index > record"pro2"data count
        begin
        subtract 1 record"pro2"data index
        put 100% record"pro2"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro2"data index
            put 100% record"temp"data record"pro2"data
            add 1 record"run"data
            end
        subtract 11 record"pro2"data index
        end
    put 2 record"pro"data index
    put 100% record"pro2"data record"pro"data
    end
put 3 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro3"data index
    if record"pro3"data index > record"pro3"data count
        begin
        subtract 1 record"pro3"data index
        put 100% record"pro3"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro3"data index
            put 100% record"temp"data record"pro3"data
            add 1 record"run"data
            end
        subtract 11 record"pro3"data index
        end
    put 3 record"pro"data index
    put 100% record"pro3"data record"pro"data
    end
put 4 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro4"data index
    if record"pro4"data index > record"pro4"data count
        begin
        subtract 1 record"pro4"data index
        put 100% record"pro4"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro4"data index
            put 100% record"temp"data record"pro4"data
            add 1 record"run"data
            end
        subtract 11 record"pro4"data index
        end
    put 4 record"pro"data index
    put 100% record"pro4"data record"pro"data
    end
put 5 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro5"data index
    if record"pro5"data index > record"pro5"data count
        begin
        subtract 1 record"pro5"data index
        put 100% record"pro5"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro5"data index
            put 100% record"temp"data record"pro5"data
            add 1 record"run"data
            end
        subtract 11 record"pro5"data index
        end
    put 5 record"pro"data index
    put 100% record"pro5"data record"pro"data
    end
put 6 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro6"data index
    if record"pro6"data index > record"pro6"data count
        begin
        subtract 1 record"pro6"data index
        put 100% record"pro6"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro6"data index
            put 100% record"temp"data record"pro6"data
            add 1 record"run"data
            end
        subtract 11 record"pro6"data index
        end
    put 6 record"pro"data index
    put 100% record"pro6"data record"pro"data
    end
put 7 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro7"data index
    if record"pro7"data index > record"pro7"data count
        begin
        subtract 1 record"pro7"data index
        put 100% record"pro7"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro7"data index
            put 100% record"temp"data record"pro7"data
            add 1 record"run"data
            end
        subtract 11 record"pro7"data index
        end
    put 7 record"pro"data index
    put 100% record"pro7"data record"pro"data
    end
put 8 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro8"data index
    if record"pro8"data index > record"pro8"data count
        begin
        subtract 1 record"pro8"data index
        put 100% record"pro8"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro8"data index
            put 100% record"temp"data record"pro8"data
            add 1 record"run"data
            end
        subtract 11 record"pro8"data index
        end
    put 8 record"pro"data index
    put 100% record"pro8"data record"pro"data
    end
put 9 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro9"data index
    if record"pro9"data index > record"pro9"data count
        begin
        subtract 1 record"pro9"data index
        put 100% record"pro9"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro9"data index
            put 100% record"temp"data record"pro9"data
            add 1 record"run"data
            end
        subtract 11 record"pro9"data index
        end
    put 9 record"pro"data index
    put 100% record"pro9"data record"pro"data
    end
put 10 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro10"data index
    if record"pro10"data index > record"pro10"data count
        begin
        subtract 1 record"pro10"data index
        put 100% record"pro10"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro10"data index
            put 100% record"temp"data record"pro10"data
            add 1 record"run"data
            end
        subtract 11 record"pro10"data index
        end
    put 10 record"pro"data index
    put 100% record"pro10"data record"pro"data
    end
put 11 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro11"data index
    if record"pro11"data index > record"pro11"data count
        begin
        subtract 1 record"pro11"data index
        put 100% record"pro11"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro11"data index
            put 100% record"temp"data record"pro11"data
            add 1 record"run"data
            end
        subtract 11 record"pro11"data index
        end
    put 11 record"pro"data index
    put 100% record"pro11"data record"pro"data
    end
put 12 record"streets"layout index
if record"streets"layout has not hit each time
    begin
    add 1 record"pro12"data index
    if record"pro12"data index > record"pro12"data count
        begin
        subtract 1 record"pro12"data index
        put 100% record"pro12"data record"temp"data
        add 1 record"temp"data
        put 1 record"run"data
        loop until record"run"data > 12
            begin
            add 1 record"pro12"data index
            put 100% record"temp"data record"pro12"data
            add 1 record"run"data
            end
        subtract 11 record"pro12"data index
        end
    put 12 record"pro"data index
    put 100% record"pro12"data record"pro"data
    end

// section 4:act on a win
put 1 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro1"data index
    if record"pro1"data index < 18
        begin
        clear record"pro1"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro1"data
        put 1 record"pro1"data index
        end
    put 1 record"pro"data index
    put 100% record"pro1"data record"pro"data
    end
put 2 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro2"data index
    if record"pro2"data index < 18
        begin
        clear record"pro2"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro2"data
        put 1 record"pro2"data index
        end
    put 2 record"pro"data index
    put 100% record"pro2"data record"pro"data
    end
put 3 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro3"data index
    if record"pro3"data index < 18
        begin
        clear record"pro3"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro3"data
        put 1 record"pro3"data index
        end
    put 3 record"pro"data index
    put 100% record"pro3"data record"pro"data
    end
put 4 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro4"data index
    if record"pro4"data index < 18
        begin
        clear record"pro4"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro4"data
        put 1 record"pro4"data index
        end
    put 4 record"pro"data index
    put 100% record"pro4"data record"pro"data
    end
put 5 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro5"data index
    if record"pro5"data index < 18
        begin
        clear record"pro5"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro5"data
        put 1 record"pro5"data index
        end
    put 5 record"pro"data index
    put 100% record"pro5"data record"pro"data
    end
put 6 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro6"data index
    if record"pro6"data index < 18
        begin
        clear record"pro6"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro6"data
        put 1 record"pro6"data index
        end
    put 6 record"pro"data index
    put 100% record"pro6"data record"pro"data
    end
put 7 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro7"data index
    if record"pro7"data index < 18
        begin
        clear record"pro7"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro7"data
        put 1 record"pro7"data index
        end
    put 7 record"pro"data index
    put 100% record"pro7"data record"pro"data
    end
put 8 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro8"data index
    if record"pro8"data index < 18
        begin
        clear record"pro8"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro8"data
        put 1 record"pro8"data index
        end
    put 8 record"pro"data index
    put 100% record"pro8"data record"pro"data
    end
put 9 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro9"data index
    if record"pro9"data index < 18
        begin
        clear record"pro9"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro9"data
        put 1 record"pro9"data index
        end
    put 9 record"pro"data index
    put 100% record"pro9"data record"pro"data
    end
put 10 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro10"data index
    if record"pro10"data index < 18
        begin
        clear record"pro10"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro10"data
        put 1 record"pro10"data index
        end
    put 10 record"pro"data index
    put 100% record"pro10"data record"pro"data
    end
put 11 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro11"data index
    if record"pro11"data index < 18
        begin
        clear record"pro11"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro11"data
        put 1 record"pro11"data index
        end
    put 11 record"pro"data index
    put 100% record"pro11"data record"pro"data
    end
put 12 record"streets"layout index
if record"streets"layout has hit each time
    begin
    subtract 12 record"pro12"data index
    if record"pro12"data index < 18
        begin
        clear record"pro12"data
        set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro12"data
        put 1 record"pro12"data index
        end
    put 12 record"pro"data index
    put 100% record"pro12"data record"pro"data
    end

//bet
duplicate record"pro" record"play"
if record"start spins"data > 0
    begin
    put 12 record"play"data index
    put 100% record"start spins"data record"run"data
    loop until record"run"data = 0
        begin
        put 0 record"play"data
        subtract 1 record"play"data index
        subtract 1 record"run"data
        end
    end
    else
    begin
    put 0 record"start spins"data
    end

if record"diff B"data = 1
    begin
    put 999999 record"min"data
    put 1 record"play"data index
    loop until record"play"data index > record"play"data count
        begin
        if record"play"data < record"min"data
            begin
            put 100% record"play"data record"min"data
            end
        add 1 record"play"data index
        end
    put 1 record"play"data index
    loop until record"play"data index > record"play"data count
        begin
        subtract 100% record"min"data record"play"data
        add 1 record"play"data index
        end
    put 0 record"total"data
    put 1 record"play"data index
    loop until record"play"data index > record"play"data count
        begin
        add 100% record"play"data record"total"data
        add 1 record"play"data index
        end
    if record"total"data = 0
        begin
        set list [1,1,1,1,1,1,1,1,1,1,1,0] record"play"data
        end
    end

put 1 record"play"data index
loop until record"play"data index > record"n Streets"data
    begin
    put 100% record"play"data index record"streets"layout index
    put 100% record"play"data record"streets"layout
    add 1 record"play"data index
    end
end

// subroutines
method "init"
begin
group
    begin
    display "straight Ahead by Zocker"
    display "---------------------------------"
    input data "How many Streets do you want to play: " record"n Streets"data
    input dropdown "On a zero, cancel the first step in the progression:
    1:= Yes
    2:= No " record"Z"data
    input dropdown "Switch progressions every other 24 spins:
    1:= Yes
    2:= No" record"Sw"data
    input dropdown "Apply differential betting:
    1:= Yes
    2:= No" record"diff B"data
    end
copy list [Street(1-3),Street(4-6),Street(7-9),Street(10-12),Street(13-15),
Street(16-18),Street(19-21),Street(22-24),Street(25-27),Street(28-30),
Street(31-33),Street(34-36)] to record"streets"layout
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro1"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro2"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro3"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro4"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro5"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro6"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro7"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro8"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro9"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro10"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro11"data
set list [1,1,1,1,1,1,1,1,1,1,1,1] record"pro12"data
put 12 record"start spins"data
put -1 record"24 counter"data
end

method "switch progressions"
begin
//sort
clear record"sequence"data
set list [0,0,0,0,0,0,0,0,0,0,0,0] record"sequence"data

put 1 record"run"data
loop until record"run"data = 13
    begin
    put 999999 record"min"data
    put 1 record"pro"data index
    loop until record"pro"data index > record"pro"data count
        begin
        put 100% record"pro"data index record"sequence"data index
        if record"sequence"data = 0
            begin
            if record"pro"data < record"min"data
                begin
                put 100% record"pro"data record"min"data
                end
            end
        add 1 record"pro"data index
        end
    put 1 record"pro"data index
    put 1 record"sequence"data index
    loop until record"pro"data = record"min"data and record"sequence"data = 0
        begin
        add 1 record"sequence"data index
        add 1 record"pro"data index
        end
    put 100% record"pro"data index record"sequence"data index
    put 100% record"run"data record"sequence"data
    add 1 record"run"data
    end
//switch
clear record"switch"layout
put 1 record"switch"layout index
put 12 record"go"data
loop until record"go"data = 0
    begin
    put 1 record"sequence"data index
    loop until record"sequence"data = record"go"data
        begin
        add 1 record"sequence"data index
        end
    put 100% record"sequence"data index record"streets"layout index
    copy record"streets"layout record"switch"layout
    add 1 record"switch"layout index
    subtract 1 record"go"data
    end
duplicate record"switch" record"streets"
end
