Comentarios para cada línea del código de Game of Life en Matlab
¿Lo tienes claro? ¿Todos
Cerrar? Todo
m = 30n = 30p = .7h = 100;
%%
% genera una matriz a de 30*30, el valor de a se basa en aleatorio Si el número es mayor que el umbral 0,7 se determina como 1 o 0.
¿Para qué? x=1:m
¿Para qué? y=1:n
r = rand(1); %rand genera un número aleatorio de 0 a 1 (excluyendo 1).
¿Y si? r & gtp
a(x, y)= 1;
¿Y si? a(x, y) = 0;
Fin
Fin
Fin
%%
Para ¿Qué? x=1:m
¿Para qué? y=1:n
¿Y si? a(x, y)==1
FX =; fy=[0, 0, n, n]; fill (fx, fy, 'k'), ¿mantener? Dibuja un fondo negro de 30*30 en %
¿Para qué? x=2:m-1
¿Para qué? y=2:n-1
b(x,y)=a(x-1,y-1)+a(x-1,y)+a(x,y-1)+ a(x, y+1)+a(x, y+1)+a(x+1, y-1)+a(x+65438
%Según las reglas del juego de vida, tome la matriz A La suma de los valores de los ocho elementos alrededor del elemento (x, y), porque no hay ocho elementos adyacentes alrededor del elemento más externo
%, por lo que no considere el rango de valores de x e y ¿Es 2:m-1 y 2:n-1?
Si? x, y);
% Si hay dos células 1 alrededor de (x, y), que son dos células vivas en el sentido del juego, entonces la próxima vida y muerte de esta célula está relacionada con la original. vida y muerte.
Angstrom. x, y), son dos células en el sentido del juego. Una célula viva, entonces esta célula sobrevivirá en el siguiente momento (supongo que 1 está viva aquí)
¿De lo contrario c(x, y) =? 0;
% Si las células vivas alrededor de (x, y) no tienen estos dos valores, es decir, hay demasiadas o muy pocas, entonces la célula morirá en el siguiente momento (aquí estoy). asumir que 0 es muerte)
End
End
End
%%
c(1: m, 1)=a(1:m, 1);
c(1:m,n)=a(1:m,n); agregue dos columnas a ambos lados de %
c(1,1:n)=a(1,1 :n);% Creo que las siguientes dos líneas deberían agregarse aquí, pero el programa original no lo hace. De lo contrario, la parte que falta es cero y. la pantalla siempre es negra.
c(m, 1:n)=a(. m, 1:n % Tenga en cuenta que la representación matricial y el dibujo son equivalentes a la transposición matricial. Faltan filas de la matriz, los lados izquierdo y derecho se mostrarán en negro.
¿Por qué? p>
¿Para qué? (x, y)==1
fx=[x-1,x-1,x, x]; fy=[y-1, y, y, y-1]; , fy, ' g '), ¿finalizar en
Otro
Fin
Fin
% Dibuja c, como arriba, dibuja una
Pausa (. 05)% Pausa durante 0,05 segundos, observa el proceso de cambio
a = c; es decir, C en este momento se considera A en el momento anterior y el ciclo continúa dibujando
%Este proceso consiste en generar una matriz A aleatoria de 30 * 30, calcular y mostrar los 29 * del medio. 29 parte de la matriz A según las reglas del juego de la vida, y repite 100 veces.
%Se puede encontrar que el círculo más externo del gráfico no ha cambiado.