Modelagem de celulas

0 respostas
Gabriel_Oliveira2

Boa noite, estou com um problema queria criar um algoritmo no scilab mas sou novo nesse mundo e estou meio perdido, que criar uma matriz de zeros ou uns (essa sei fazer) dai sortear campos que tenha números 1, com isso entraria em um laço e seria sorteado 3 ações para ser feitas, que seria morte ( posiçao recebe zero), divisão (uma das posiçoes vizinhas recebe 1) ou movimento (na posiçao atual recebe 0 e uma das posiçoes vizinhas recebem 1) e depois disso mostrar essa matriz como 1 em formato de bolinhas e o zero como espaços vazio… sera que alguem pode me dar um help tentei fazer um codigo mas nao ta rodando, o memso segue abaixo

gar = zeros (10,10)//matriz feita

gar(5,2) = 1
gar(5,3) = 1
gar(6,1) = 1
gar(6,3) = 1
sor = 1
while (sor == 1)//sorteio da posição a ser trabalhada
    m = rand ()
    m = int(m*10)
    n = rand ()
    n = int(n*10)
    if (gar(m,n) == 1) then 
        sor =0
    end
      
end
for 1: 10
    ale = rand ()
    if (ale<0.333) then
            gar(m,n) = 0 //morte da celular
             else if (ale<0.666) then
                mov = rand ()//movimentação
                 if (mov<0.125) then
                 gar(m,n) = gar(m+1,n) 
         else if (mov<0.25) then
                gar(m,n) = gar(m,n+1) 
            else if (mov<0,375) then
                     gar(m,n) = gar(m-1,n) 
                else if (mov<0,5) then
                         gar(m,n) = gar(m,n-1)
                 if (mov<0.625) then
                 gar(m,n) = gar(m+1,n+1) 
        else if (mov<0.75) then
                gar(m,n) = gar(m-1,n-1) 
            else if (mov<0,875) then
                     gar(m,n) = gar(m-1,n+1) 
                else if (mov<1) then
                         gar(m,n) = gar(m+1,n-1) 
                   
    else if (ale<1) then
            div = rand ();//divisão celular
                 if (div<0.125) then
                 gar(m+1,n) = 1 
         else if (div<0.25) then
                gar(m,n+1) =  1 
            else if (div<0,375) then
                     gar(m-1,n) = 1 
                else if (div<0,5) then
                         gar(m,n-1) = 1
                 if (div<0.625) then
                  gar(m+1,n+1) = 1 
        else if (div<0.75) then
                gar(m-1,n-1) = 1 
            else if (div<0,875) then
                     gar(m-1,n+1) = 1
                else if (div <1) then
                         gar(m+1,n-1) = 1 
                    end
                end
            end
        end
    end
  end
  end
                end
            end
        end
    end
      end
                end
            end
        end
                end
            end
        end
    end
    
end
plot(gar)
Criado 14 de junho de 2017
Respostas 0
Participantes 1