image thumbnail
from Clock Bell by Krishna Lalith
Place the coins on turn basis, on the board to complete &/or to block to gain different medals.

[Xnew Ynew]=Check_Order(Clocky,Count,Check)
function [Xnew Ynew]=Check_Order(Clocky,Count,Check)

Xnew=0; Ynew=0;

%Radial
for ii=1:12,
    R=[Clocky(ii,1) Clocky(ii,2) Clocky(ii,3) Clocky(ii,4)];
    if length(find(R==Check))==Count,
        [X Y]=find(R==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=1;
                case 2
                    Xnew=ii;  Ynew=2;
                case 3
                    Xnew=ii;  Ynew=3;
                case 4
                    Xnew=ii;  Ynew=4;    
            end
        end
    end
end

%Semi-Circular
for jj=1:4,
    for ii=1:12,
        S=[Clocky(ii,jj) Clocky(Lin2Cir(ii+1),jj) Clocky(Lin2Cir(ii+2),jj) Clocky(Lin2Cir(ii+3),jj)];
        if length(find(S==Check))==Count,
            [X Y]=find(S==5,1);
            if (~isempty(X) && ~isempty(Y)),
                switch Y
                    case 1
                        Xnew=ii;  Ynew=jj;
                    case 2
                        Xnew=Lin2Cir(ii+1);  Ynew=jj;
                    case 3
                        Xnew=Lin2Cir(ii+2);  Ynew=jj;
                    case 4
                        Xnew=Lin2Cir(ii+3);  Ynew=jj; 
                end
            end
        end
    end
end

%Semi-Spiral
for ii=1:12,
    SP=[Clocky(ii,4) Clocky(Lin2Cir(ii+1),3) Clocky(Lin2Cir(ii+2),2) Clocky(Lin2Cir(ii+3),1)];
    if length(find(SP==Check))==Count,
        [X Y]=find(SP==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=4;
                case 2
                    Xnew=Lin2Cir(ii+1);  Ynew=3;
                case 3
                    Xnew=Lin2Cir(ii+2);  Ynew=2;
                case 4
                    Xnew=Lin2Cir(ii+3);  Ynew=1;    
            end
        end
    end
    
    SP=[Clocky(ii,1) Clocky(Lin2Cir(ii+1),2) Clocky(Lin2Cir(ii+2),3) Clocky(Lin2Cir(ii+3),4)];
    if length(find(SP==Check))==Count,
        [X Y]=find(SP==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=1;
                case 2
                    Xnew=Lin2Cir(ii+1);  Ynew=2;
                case 3
                    Xnew=Lin2Cir(ii+2);  Ynew=3;
                case 4
                    Xnew=Lin2Cir(ii+3);  Ynew=4;    
            end
        end
    end
end

%Diametrical
for ii=1:6,    
    O=[Clocky(ii,1) Clocky(ii,3) Clocky(ii+6,2) Clocky(ii+6,4)];
    if length(find(O==Check))==Count,
        [X Y]=find(O==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=1;
                case 2
                    Xnew=ii;  Ynew=3;
                case 3
                    Xnew=ii+6;  Ynew=2;
                case 4
                    Xnew=ii+6;  Ynew=4;   
            end
        end
    end
    
    O=[Clocky(ii,2) Clocky(ii,4) Clocky(ii+6,1) Clocky(ii+6,3)];
    if length(find(O==Check))==Count,
        [X Y]=find(O==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=2;
                case 2
                    Xnew=ii;  Ynew=4;
                case 3
                    Xnew=ii+6;  Ynew=1;
                case 4
                    Xnew=ii+6;  Ynew=3; 
            end
        end
    end
end

%Circular
for jj=1:4,
    for ii=1:12,
        C=[Clocky(ii,jj) Clocky(Lin2Cir(ii+2),jj) Clocky(Lin2Cir(ii+4),jj) Clocky(Lin2Cir(ii+6),jj)];
        if length(find(C==Check))==Count,
            [X Y]=find(C==5,1);
            if (~isempty(X) && ~isempty(Y)),
                switch Y
                    case 1
                        Xnew=ii;  Ynew=jj;
                    case 2
                        Xnew=Lin2Cir(ii+2);  Ynew=jj;
                    case 3
                        Xnew=Lin2Cir(ii+4);  Ynew=jj;
                    case 4
                        Xnew=Lin2Cir(ii+6);  Ynew=jj; 
                end
            end
        end
    end  
end

%Spiral
for ii=1:12,
    P=[Clocky(ii,4) Clocky(Lin2Cir(ii+2),3) Clocky(Lin2Cir(ii+4),2) Clocky(Lin2Cir(ii+6),1)];
    if length(find(P==Check))==Count,
        [X Y]=find(P==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=4;
                case 2
                    Xnew=Lin2Cir(ii+2);  Ynew=3;
                case 3
                    Xnew=Lin2Cir(ii+4);  Ynew=2;
                case 4
                    Xnew=Lin2Cir(ii+6);  Ynew=1; 
            end
        end
    end
    
    P=[Clocky(ii,1) Clocky(Lin2Cir(ii+2),2) Clocky(Lin2Cir(ii+4),3) Clocky(Lin2Cir(ii+6),4)];
    if length(find(P==Check))==Count,
        [X Y]=find(P==5,1);
        if (~isempty(X) && ~isempty(Y)),
            switch Y
                case 1
                    Xnew=ii;  Ynew=1;
                case 2
                    Xnew=Lin2Cir(ii+2);  Ynew=2;
                case 3
                    Xnew=Lin2Cir(ii+4);  Ynew=3;
                case 4
                    Xnew=Lin2Cir(ii+6);  Ynew=4;    
            end
        end
    end
end

Contact us at files@mathworks.com