function plant2
% generovani retezce
n = 6; % pocet iteraci
p{1} = struct('var','M','rule1','S[++M][-M]SM','rule2','S[+M][--M]SM');
p{2} = struct('var','S','rule1','SS[+M]','rule2','SS[-M]');
alfa = 15*pi/180;
axiom = 'M';

nr = length(p);
for i = 1:n
    axiom_new = [];
    for j = 1:length(axiom)
        ax = 0;
        for k = 1:nr
            if(p{k}.var == axiom(j))
                if(rand > 0.5)
                    axiom_new = [axiom_new,p{k}.rule1];
                else
                    axiom_new = [axiom_new,p{k}.rule2];
                end
                ax = 1;
            end
        end
        if(ax == 0)
            axiom_new = [axiom_new,axiom(j)];
        end
    end
    axiom = axiom_new;
    
end

% tisk pomoci zelvi grafiky
n = length(axiom);
x_stag = [];
y_stag = [];
beta_stag = [];
xs = 0;
ys = 0;
beta = 0;
figure('color','w')
hold on;
for i = 1:n
    switch axiom(i)
        case 'M'
            xn = xs + sin(beta);
            yn = ys + cos(beta);
            line([xs,xn],[ys,yn],'color','g','linewidth',2);
            xs = xn;
            ys = yn;
        case 'S'
            xn = xs + sin(beta);
            yn = ys + cos(beta);
            line([xs,xn],[ys,yn],'color',[0.7 0.5 0],'linewidth',2);
            xs = xn;
            ys = yn;
        case '+'
            beta = beta + alfa;
        case '-'
            beta = beta - alfa;
        case '['
            x_stag = [x_stag,xs];
            y_stag = [y_stag,ys];
            beta_stag = [beta_stag,beta];
        case ']'
            n_stag = length(x_stag);
            xs = x_stag(n_stag);
            ys = y_stag(n_stag);
            beta = beta_stag(n_stag);
            I = 1:n_stag-1;
            x_stag = x_stag(I);
            y_stag = y_stag(I);
            beta_stag = beta_stag(I);
    end
end
axis equal;
axis off;




