system "Lappa Four"
{
*************************************
*         System by Lappa           *
*        on the VIP Lounge          *
*************************************
         Rx-ed by St0rm0r

Track 15 spins.
Select the most dominant line as follows:
    street that has hit most frequently
    +
    adjacent street that has hit the most
Use negative progression 1-1-1-1-1-2-2-2-3-3-4-5-6-7.
Reset on a win or at the end of progression.
}
method "main"
begin
// section 1: do this once
while starting new session
    begin
    call "init"
    end

// section 2: do the tracking
track last street for 15 times in record"game"layout

// section 3: act on a loss
if net < 0
    begin
    add 1 record"pro"data index
    if record"pro"data index > record"pro"data count
        begin
        call"reset"
        end
    end

// section 4:act on a win
if net > 0
    begin
    call"reset"
    end

// section 5: what to do when not qualified
if flag "qualified" false and record"game"layout count > 14
    begin
    call "update frequency list"
    call "determine street maximum"
    call "select dominant line"
    call "check for being unique"
    if record"unique"data = 1
        begin
        set flag "qualified" true
        end
    end

// section 6: what to do when qualified
if flag "qualified" true
    begin
    // bet
    if record"dominant one"data < record"dominant other"data
        begin
        put 100% record"dominant one"data in record"line"layout index
        end
        else
        begin
        put 100% record"dominant other"data in record"line"layout index
        end
    put 100% record"pro"data on record"line"layout
    end

end

// subroutines
method "init"
begin
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)] record"street"layout
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)] record"line"layout
set list [1,1,1,1,1,2,2,2,3,3,4,5,6,7] to record"pro"data
call "reset"
end

method "reset"
begin
clear record"game"layout //eliminate this line to avoid tracking from scratch
set flag "qualified" false
put 1 record"pro"data index
end

method "update frequency list"
begin
set list [0,0,0,0,0,0,0,0,0,0,0,0] record"street frequency"data
put 1 record"game"layout index
loop until record"game"layout index > record"game"layout count
    begin
    put 1 record"street"layout index
    loop until record"street"layout = record"game"layout
        begin
        add 1 record"street"layout index
        end
    put 100% record"street"layout index in record"street frequency"data index
    add 1 record"street frequency"data
    add 1 record"game"layout index
    end
end

method "determine street maximum"
begin
put 0 record"max"data
put 1 record"street frequency"data index
loop until record"street frequency"data index > record"street frequency"data count
    begin
    if record"street frequency"data > record"max"data
        begin
        put 100% record"street frequency"data in record"max"data
        end
    add 1 record"street frequency"data index
    end
end

method "select dominant line"
begin
put 0 record"dominant one"data
put 0 record"dominant other"data
put 0 record"other #"data
put 1 record"street frequency"data index
loop until record"street frequency"data index > record"street frequency"data count
    begin
    if record"street frequency"data = record"max"data
        begin
        //look left
        if record"street frequency"data index > 1
            begin
            subtract 1 record"street frequency"data index
            if record"street frequency"data >= record"other #"data
                begin
                put 100% record"street frequency"data index in record"dominant other"data
                put 100% record"street frequency"data index in record"dominant one"data
                add 1 record"dominant one"data
                put 100% record"street frequency"data in record"other #"data
                end
            add 1 record"street frequency"data index
            end
        //look right
        if record"street frequency"data index < 12
            begin
            add 1 record"street frequency"data index
            if record"street frequency"data >= record"other #"data
                begin
                put 100% record"street frequency"data index in record"dominant other"data
                put 100% record"street frequency"data index in record"dominant one"data
                subtract 1 record"dominant one"data
                put 100% record"street frequency"data in record"other #"data
                end
            subtract 1 record"street frequency"data index
            end
        end
    add 1 record"street frequency"data index
    end
end

method "check for being unique"
begin
put 0 record"unique"data
put 1 record"street frequency"data index
loop until record"street frequency"data index = record"street frequency"data count
    begin
    put 100% record"street frequency"data in record"A"data
    add 1 record"street frequency"data index
    put 100% record"street frequency"data in record"B"data
    subtract 1 record"street frequency"data index
    if record"A"data = record"max"data and record"B"data = record"other #"data
        begin
        add 1 record"unique"data
        end
        else
        begin
        if record"B"data = record"max"data and record"A"data = record"other #"data
            begin
            add 1 record"unique"data
            end
        end
    add 1 record"street frequency"data index
    end
end
