system "Groups_System"

{Groups System
}
method "main"
begin
    While Starting a New Session
    begin
        Call "Initialize";
        Exit;
    end
    
    Copy last Number to Record "Last Spin" layout;
    Add 1 to record "Spin count" data;

    Call "Determine if Group has Won";
    Call "Determine which Group has Repeated";
    Call "Find a Repeat Group to Bet";
    Call "Determine if Bets Placed";
end

method "Determine if Group has Won"
begin
    While Flag "Bets Placed" is True
    begin
        if record "Total Count of Spins after Placing Bets" data >= 9
        begin
            Call "Reset";
            Return;
        end
    end
    
    While Any Inside Bet has won each time
    begin
        Call "Reset";
    end
end

//If we have Placed Bets, then Add 1 to Total Count of Spins
method "Determine if Bets Placed"
begin
    While Flag "Bets Placed" is True
    begin
        Add 1  on Record "Total Count of Spins after Placing Bets" data;
    end
end

method "Find a Repeat Group to Bet"
begin
    Set Flag "Bets Placed" to False;
    Duplicate record "Group 2 list" to record "temp";
    Call "Validate a Repeated Group";

    Duplicate record "Group 4 list" to record "temp";
    Call "Validate a Repeated Group";

    Duplicate record "Group 5 list" to record "temp";
    Call "Validate a Repeated Group";

    Duplicate record "Group 6 list" to record "temp";
    Call "Validate a Repeated Group";

    Duplicate record "Group 7 list" to record "temp";
    Call "Validate a Repeated Group";

    Duplicate record "Group 9 list" to record "temp";
    Call "Validate a Repeated Group";
end

method "Validate a Repeated Group"
begin
    While Record "temp" data < 2
    begin
        Return;
    end

    Set Flag "Bets Placed" to True;
    
    Loop Until record "temp" layout index > record "temp" layout count
    begin
        Put 1 on Record "temp" layout;
        Add 1  on Record "temp" layout index;
    end
end

//As each Number comes up, we check its Group Number to
//determine if the Group has Repeated
method "Determine which Group has Repeated"
begin
    While Flag "Bets Won" is True
    begin
        Return;
    end
    
    While Record "Last Spin" layout = Number 2
    Or Record "Last Spin" layout = Number 11
    Or Record "Last Spin" layout = Number 20
    Or Record "Last Spin" layout = Number 29
    begin
        Add 1  on Record "Group 2 list" data;
        Return;
    end
    
    While Record "Last Spin" layout = Number 4
    Or Record "Last Spin" layout = Number 13
    Or Record "Last Spin" layout = Number 22
    Or Record "Last Spin" layout = Number 31
    begin
        Add 1  on Record "Group 4 list" data;
        Return;
    end
    
    While Record "Last Spin" layout = Number 5
    Or Record "Last Spin" layout = Number 14
    Or Record "Last Spin" layout = Number 23
    Or Record "Last Spin" layout = Number 32
    begin
        Add 1  on Record "Group 5 list" data;
        Return;
    end
    
    While Record "Last Spin" layout = Number 6
    Or Record "Last Spin" layout = Number 15
    Or Record "Last Spin" layout = Number 24
    Or Record "Last Spin" layout = Number 33
    begin
        Add 1  on Record "Group 6 list" data;
        Return;
    end
    
    While Record "Last Spin" layout = Number 7
    Or Record "Last Spin" layout = Number 16
    Or Record "Last Spin" layout = Number 25
    Or Record "Last Spin" layout = Number 34
    begin
        Add 1  on Record "Group 7 list" data;
        Return;
    end
    
    While Record "Last Spin" layout = Number 9
    Or Record "Last Spin" layout = Number 18
    Or Record "Last Spin" layout = Number 27
    Or Record "Last Spin" layout = Number 36
    begin
        Add 1  on Record "Group 9 list" data;
    end
end

//Setup the Store Data section
method "Initialize"
begin
    Put 100% of bankroll to record "Starting Bankroll" data;
    Put 0 on record "Net" data;
    Put 0 on record "Spin count" data;
    
    Clear Record "Last Spin" data;

    Copy List [Number 2,Number 11,Number 20, Number 29]
                                         to Record "Group 2 list" layout;

    Copy List [Number 4,Number 13,Number 22,Number 31]
                                         to Record "Group 4 list" layout;

    Copy List [Number 5,Number 14,Number 23,Number 32]
                                         to Record "Group 5 list" layout;

    Copy List [Number 6, Number 15, Number 24, Number 33]
                                         to Record "Group 6 list" layout;

    Copy List [Number 7, Number 16, Number 25, Number 34]
                                          to Record "Group 7 list" layout;

    Copy List [Number 9, Number 18, Number 27, Number 36]
                                           to Record "Group 9 list" layout;

    Call "Reset";
end

//Perform a Reset to Start a New game
method "Reset"
begin
    Put 0  on Record "Total Count of Spins after Placing Bets" data;
    Set Flag "Bets Placed" to False;
    Clear Record "Group 2 list" data;
    Clear Record "Group 4 list" data;
    Clear Record "Group 5 list" data;
    Clear Record "Group 6 list" data;
    Clear Record "Group 7 list" data;
    Clear Record "Group 9 list" data;
end



