삶의 게임 규칙에 대해 이야기 해 봅시다.
생명의 게임에서, 각 세포는 두 가지 상태, 즉 생과 죽음을 가지고 있다. 우리의 실현에서 노란색 세포는 살아있는 세포를 나타내고, 빨간색 세포는 죽은 세포를 나타낸다. 각 셀의 다음 상태는 셀과 그 주변 8 개 셀의 현재 상태에 의해 결정됩니다.
구체적으로 말하자면:
현재 세포는 살아있는 세포이다.
현재 단위는 죽은 단위입니다
설치되지 않은 표준 라이브러리:
타사 라이브러리:
가져오기 모듈:
우선, 세포의 생존 공간은 N * N 의 정사각형이며, 각 세포마다 켜기, 끄기 두 가지 상태가 있다는 것을 알아야 한다. 운전은 255 이고, 관문은 0 이다. 우리는 numpy 를 사용하여 N * N Np.random 의 정사각형을 생성합니다. choice 는 State.on 과 State.off 에서 같은 확률로 요소를 무작위로 선택하여 N * N 의 정사각형을 구성합니다.
둘째, 우리는 세포 주위의 살아있는 세포 수, 특히 경계 주위에 원이 있는 세포를 계산하는 방법을 알아야 한다. 나머지 방법을 사용하여 보드 크기가 9 * 9 인 경우 왼쪽 및 오른쪽 경계의 왼쪽 요소는-1% 9 = 8 로 계산되며 오른쪽 경계로 자동 축소됩니다. 세포 주위의 8 개 세포의 수치를 더하고 255 로 나누면 세포 주위의 살아있는 세포 수를 얻을 수 있다.
다음은 규칙의 번역입니다. 즉, 현재 세대의 상태에 따라 차세대 세포의 상태를 추론하는 것입니다. Initial 은 현재 세대의 행렬이고 data 는 차세대 행렬입니다. 초기값을 기준으로 데이터 값을 계산합니다. 총수는 주변 살아있는 세포의 수이다. 만약 현재 세포가 살아 있다면, 총수가 3 보다 크거나 2 보다 작으면, 다음 세대는 사망할 것이다. 현재 세포가 죽으면 총수는 3 이고, 다음 세대의 살아있는 세포는 그 세포로 번식할 것이다.
다음은 애니메이션 과정입니다. 처음 몇 줄은 그림의 기본 작업입니다. 그런 다음 matplotlib.animation 메서드를 사용했습니다. 여기서 Funanimation 은 매개 변수의 의미를 받아들입니다. fig 는 이미지 핸들이고 generate 함수는 각 프레임 이미지의 데이터를 업데이트해야 하는 함수입니다. 아래에 설명되어 있습니다. Fargs 는 첫 번째 매개 변수 이외의 genrate 함수이며 첫 번째 매개 변수는 Funanimation 으로 지정된 framenum (프레임 수) 을 통해 generate 함수에 전달됩니다. Frames 는 프레임 수, interval 은 이미지를 업데이트하는 간격, save_count 는 프레임에서 캐시까지의 값 수입니다.
저장 경로 (html) 를 지정하면 html 애니메이션으로 저장됩니다.
Generate 함수를 살펴 보겠습니다. 여기서 NUM 은 반복 수이고 frame_num 은 FuncAnimation 에서 프레임 수를 받습니다. 중첩된 for 루프를 통해 방진에 있는 각 요소의 상태를 하나씩 업데이트합니다.
마지막으로 명령줄 인수를 통해 프로그램을 실행할 수 있습니다.
-size 매개변수는 바둑판의 크기이고-seed 는 다른 임의 정사각형을 생성하는 임의 시드입니다.
고스파 글라이더 총
글라이더를 글라이더로 바꿀 수 있습니다. -애니메이션으로 저장된 주소를 저장합니다.