System of the Diagonal

This is a system that I have never heard of before.  I found it on the pre-made systems in roulette Xtreme.  Basically, the system involves waiting for 12 unique numbers to appear and then betting on numbers to complete the diagonal.

So for example, if these numbers came out, 1, 2, 3, 5, 10, 14, 15, 17, 26, 29, 30 and 34, the bets would be on 7, 9, 18. 19 and 22.  Note there is no bet on 32 even thought that completes a diagonal too.

1, 2, 3, 5, 10, 14, 15, 17, 26, 29, 30 and 34 come out and so betting on 7, 9, 18. 19 and 22 completes the diagonals.

 

Once you have your 12 unique numbers and the ‘diagonals’ to bet on, you do 37 spins. After these 37 spins, you start again.

Analysis

As this system involves sitting out 12 spins in every 50 or so, then its going to lose less than most systems in the long run. Recall, the house edge works in the long term so the less you play, the less you lose.

There isn’t any clever progression or anything. Its just betting on a few singles.

Video of 10000 spins

Conclusion

The system doesn’t perform too badly. In our simulation it ended up with a small increase in the bankroll. I suspect this is due to random variance and the lack of betting. In the 10000 spins, bets would have only been placed in about three quarters of them.

I’ve run it a few times and it does end up down most of the time. You will get lucky occasionally and bet up. The good thing is, that as the system doesn’t place many bets and they are relatively small, its unlikely you will go bankrupt playing it.

                    
system "Diagonal System"

//See documentation for an example of how the system works

method "main"
begin
    while Starting a new session
    begin
        call "Initialize";
        call "Reset the diagonals";
        Exit;
    end
    
    if flag "a bet is placed" is true
    begin
        if record "series count" data > 37
        begin
            call "Reset the diagonals";
            clear record "12 unique numbers" layout;
            set flag "12 numbers crossed out" to false;
            set flag "a bet is placed" to false;
            put 0 on record "series count" data;
        end
    end
    
    call "Track numbers";
    call "Mark all diagonals";

    if record "12 unique numbers" layout count = 12 then
    begin
        set flag "12 numbers crossed out" to true;
    end
    
    call "Place bets on all diagonals";
end

method "Track numbers"
begin
    copy last number to record "number" layout;

    //check for duplicate numbers that have appeared
    if record "number" layout is not found in record "12 unique numbers" layout
    begin
        //check to see if there are already 12 numbers in the list
        if record "12 unique numbers" layout index > 12
        begin
            //move the entire list of numbers up by 1
            move list up by 1 on record "12 unique numbers" layout;
            set max to record "12 unique numbers" layout index;
            add 1 to record "12 unique numbers" layout index;
        end

        //store the last spin that has appeared to the track spin list
        copy record "number" layout to record "12 unique numbers" layout;
        add 1 to record "12 unique numbers" layout index;
    end
end

method "Mark all diagonals"
begin
    if flag "12 numbers crossed out" is true
    begin
        return;
    end

    Duplicate Record "diagonal 1" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 1";

    Duplicate Record "diagonal 2" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 2";

    Duplicate Record "diagonal 3" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 3";

    Duplicate Record "diagonal 4" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 4";

    Duplicate Record "diagonal 5" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 5";

    Duplicate Record "diagonal 6" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 6";

    Duplicate Record "diagonal 7" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 7";

    Duplicate Record "diagonal 8" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 8";

    Duplicate Record "diagonal 9" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 9";

    Duplicate Record "diagonal 10" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 10";

    Duplicate Record "diagonal 11" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 11";

    Duplicate Record "diagonal 12" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 12";

    Duplicate Record "diagonal 13" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 13";

    Duplicate Record "diagonal 14" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 14";

    Duplicate Record "diagonal 15" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 15";

    Duplicate Record "diagonal 16" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 16";

    Duplicate Record "diagonal 17" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 17";

    Duplicate Record "diagonal 18" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 18";

    Duplicate Record "diagonal 19" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 19";

    Duplicate Record "diagonal 20" to Record "temp record";
    call "Mark each diagonal";
    Duplicate Record "temp record" to Record "diagonal 20";
end

method "Mark each diagonal"
begin
    if  Record "number" Layout is found in record "temp record" Layout
    begin
        put 1 on record "temp record" Layout index;

        loop until record "temp record" Layout index > record "temp record" layout count
        begin
            if record "number" layout = record "temp record" layout
            begin
                put 100% record "temp record" layout index to
                                                         record "temp record" data index;
                put 1 on record "temp record" data;
                return;
            end

            add 1 to record "temp record" Layout index;
        end
    end
end

method "Place bets on all diagonals"
begin
    if flag "12 numbers crossed out" is false
    begin
        return;
    end

    add 1 to record "series count" data;
    set flag "a bet is placed" to false;
    Duplicate Record "diagonal 1" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 1";

    Duplicate Record "diagonal 2" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 2";

    Duplicate Record "diagonal 3" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 3";

    Duplicate Record "diagonal 4" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 4";

    Duplicate Record "diagonal 5" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 5";

    Duplicate Record "diagonal 6" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 6";

    Duplicate Record "diagonal 7" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 7";

    Duplicate Record "diagonal 8" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 8";

    Duplicate Record "diagonal 9" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 9";

    Duplicate Record "diagonal 10" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 10";

    Duplicate Record "diagonal 11" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 11";

    Duplicate Record "diagonal 12" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 12";

    Duplicate Record "diagonal 13" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 13";

    Duplicate Record "diagonal 14" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 14";

    Duplicate Record "diagonal 15" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 15";

    Duplicate Record "diagonal 16" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 16";

    Duplicate Record "diagonal 17" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 17";

    Duplicate Record "diagonal 18" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 18";

    Duplicate Record "diagonal 19" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 19";

    Duplicate Record "diagonal 20" to Record "temp record";
    call "Place bets on each diagonal";
    Duplicate Record "temp record" to Record "diagonal 20";

    if flag "a bet is placed" is false
    begin
        call "Reset the diagonals";
        clear record "12 unique numbers" layout;
        set flag "12 numbers crossed out" to false;
        set flag "a bet is placed" to false;
        put 0 on record "series count" data;
    end
end

method "Place bets on each diagonal"
begin
    put 0 on record "total diagonal count" data;
    put 1 on record "temp record" Data index;

    loop until record "temp record" Data index >record "temp record" Data count
    begin
        if record "temp record" Data = 1
        begin
            add 1 to record "total diagonal count" data;
        end

        add 1 to record "temp record" Data index;
    end

    //must have two numbers that are next to each other in the form
    //of a diagonal before we can place a bet
    if record "total diagonal count" data = 2 then
    begin
        //we have two numbers that have appeared.
        //Now check to see if these numbers are next to each other
        put 1 on record "temp record" data index;
        put 100% of record "temp record" data to record "first number" data;
        add 1 to record "temp record" data index;
        put 100% of record "temp record" data to record "second number" data;
        
        if record "first number" data = record "second number" data
        begin
            //Both numbers are next to each other.  Place a bet
            //on the opposite number that has NOT appeared.
            put 3 on record "temp record" layout index;
            put 1 on record "temp record" layout;
            set flag "a bet is placed" to true;
        end
        else
        begin
            //check the other end of the diagonal to a match.
            put 2 on record "temp record" data index;
            put 100% of record "temp record" data to record "first number" data;
            add 1 to record "temp record" data index;
            put 100% of record "temp record" data to record "second number" data;

            if record "first number" data = record "second number" data
            begin
                //Both numbers are next to each other.  Place a bet
                //on the opposite number that has NOT appeared.
                put 1 on record "temp record" layout index;
                put 1 on record "temp record" layout;
                set flag "a bet is placed" to true;
            end
        end
    end
end

method "Reset the diagonals"
begin
    set list [0,0,0] to record "diagonal 1" data;
    set list [0,0,0] to record "diagonal 2" data;
    set list [0,0,0] to record "diagonal 3" data;
    set list [0,0,0] to record "diagonal 4" data;
    set list [0,0,0] to record "diagonal 5" data;
    set list [0,0,0] to record "diagonal 6" data;
    set list [0,0,0] to record "diagonal 7" data;
    set list [0,0,0] to record "diagonal 8" data;
    set list [0,0,0] to record "diagonal 9" data;
    set list [0,0,0] to record "diagonal 10" data;
    set list [0,0,0] to record "diagonal 11" data;
    set list [0,0,0] to record "diagonal 12" data;
    set list [0,0,0] to record "diagonal 13" data;
    set list [0,0,0] to record "diagonal 14" data;
    set list [0,0,0] to record "diagonal 15" data;
    set list [0,0,0] to record "diagonal 16" data;
    set list [0,0,0] to record "diagonal 17" data;
    set list [0,0,0] to record "diagonal 18" data;
    set list [0,0,0] to record "diagonal 19" data;
    set list [0,0,0] to record "diagonal 20" data;
end

method "Initialize"
begin
    set flag "12 numbers crossed out" to false;
    clear record "number" layout;
    clear record "12 unique numbers" layout;
    clear record "series count" data;
    
    copy list  [number 1,Number 5,Number 9] to record "diagonal 1" layout;
    copy list  [Number 3,Number 5,Number 7] to record "diagonal 2" layout;
    copy list  [Number 4,Number 8,Number 12] to record "diagonal 3" layout;
    copy list  [Number 6,Number 8,Number 10] to record "diagonal 4" layout;
    copy list  [Number 7,Number 11,Number 15] to Record "diagonal 5" Layout;
    copy list  [Number 9,Number 11,Number 13] to Record "diagonal 6" Layout;
    copy list  [Number 10,number 14,number 18] to record "diagonal 7" layout;
    copy list  [Number 12,number 14,Number 16] to record "diagonal 8" layout;
    copy list  [number 13,number 17,number 21] to record "diagonal 9" layout;
    copy list  [Number 15,number 17,Number 19] to record "diagonal 10" layout;
    copy list  [number 16,number 20,number 24] to record "diagonal 11" layout;
    copy list  [Number 18,number 20,Number 22] to record "diagonal 12" layout;
    copy list  [number 19,number 23,number 27] to record "diagonal 13" layout;
    copy list  [Number 21,number 23,Number 25] to record "diagonal 14" layout;
    copy list  [number 22,number 26,number 30] to record "diagonal 15" layout;
    copy list  [Number 24,number 26,Number 28] to record "diagonal 16" layout;
    copy list  [number 25,number 29,number 33] to record "diagonal 17" layout;
    copy list  [Number 27,number 29,Number 31] to record "diagonal 18" layout;
    copy list  [number 28,number 32,number 36] to record "diagonal 19" layout;
    copy list  [Number 30,number 32,Number 34] to record "diagonal 20" layout;
end

Leave a Reply

Your email address will not be published. Required fields are marked *