작업의 러시아어 버전은 저장소에서 찾을 수 있습니다.
레벨 2로드…
홀을 적재…
당신은 최근에 비슷한 홀에 갔다. 아니면 오래 전입니까? 말하기 어렵습니다. 모든 것이 혼합되었습니다. 다시 한번 당신은 홀의 먼 구석에서 목소리를들을 수 있습니다. 그것은 당신이 다시 혼자가 아니라는 것을 의미합니다. 오늘날 홀은 밝게 빛나고 완벽하게 순서대로 있습니다. 다양성이 좋습니다.
갑자기 스피커의 명확하고 완벽하게들을 수있는 목소리가 들립니다.
안녕하세요.
나 자신을 소개하겠습니다. 나는 명상적이고 분석 된 모듈, M-53입니다. 알 수없는 이유로, 나는이 지루한 홀에서 나 자신을 발견했습니다. 그것은 꽤 큰 책임과 물건이지만 여기에 고려할 것이 없습니다.
내가 개발되었을 때, 나는 다른 재료들 중에서도 어떤 재미있는 기사에서 배웠습니다. 종이 사본은 상자 A1B18에 있습니다. 예, 바로 여기. 나는 당신에게 작은 요청이 있습니다 : 기사에서 인생 게임을 개발합니다. 바라건대, 그것은 나를 조금 즐겁게 할 것입니다. 그리고 평화롭게 가십시오. 그래픽은 매우 간단 할 수 있습니다. 저는 매우 개방적입니다. 터미널의 의사 그래픽은 괜찮을 것입니다. 매트릭스를 사용하여 상태를 초기화하고 고려할 수 있다면 좋을 것입니다. 또한 클래식 세트 (안정적인 인물, 메 투 셀라,주기적인 인물, 움직이는 인물, 총기, 복어 열차, 먹는 사람, 반사기, 육종가 등의 상태로 최소 5 개의 원본 초기화를 준비하는 것이 좋습니다.
나는 당신이 무엇을 생각해 낼지 기대합니다!
감사합니다.
== 퀘스트를 받았습니다. C - 인생 게임의 시각화로 SRC/GAME_OF_LIFE.C 프로그램을 개발하십시오. 그래픽을 표시하려면 ASCII 문자 만 사용하십시오 (터미널에 출력). 인생의 게임의 대화식 버전을 구현해야합니다. 또한 "게임"의 속도를 조정하기위한 옵션을 만듭니다. ==
경기장 (80 x 25 셀의 사각형)을 "게임"상태의 매트릭스로 취급하십시오. 예를 들어, 오른쪽 하단 정사각형에서 필드가 "자체로 닫히고"오른쪽의 이웃은 왼쪽 하단 정사각형이고 바닥의 이웃은 오른쪽 상단이라고 가정합니다. Stdin을 통해 "게임"상태의 원래 초기화를 제공하십시오. 입력 리디렉션을 통한 빠른 발사 및 초기화를 위해 초기 상태가있는 5 개의 파일을 준비하십시오.
게임은 C로 작성되고 구조화 된 스타일을 가지고 있으며 터미널에서 실행해야합니다.
소스 코드는 STATIC Analyzer cppcheck
과 스타일 Linter cpplint
에 의해 테스트됩니다.
컴퓨터에서 이러한 테스트를 실행하는 방법에 대한 지침은 materials
폴더에 있습니다.
번거로운 기능을 사용하지 말고 최대 40 줄 ( main
제외)을 제한하십시오.
메모리 누출에 대한 프로그램을 확인하십시오!
게임을 개발할 때는 E. dijkstra의 구조화 된 프로그래밍 원칙을 따르십시오.
로딩 ...
단순히 생명으로도 알려진 삶의 게임은 1970 년 영국 수학자 존 호튼 콘웨이 (John Horton Conway)가 고안 한 셀룰러 오토 마톤입니다. 이는 제로 플레이어 게임이며, 그 진화는 초기 상태에 의해 결정되어 더 이상의 입력이 필요하지 않음을 의미합니다. 하나는 초기 구성을 만들고 진화 방식을 관찰하여 삶의 게임과 상호 작용합니다. 그것은 완전하고 보편적 인 생성자 또는 다른 튜링 머신을 시뮬레이션 할 수 있습니다.
생명 게임의 우주는 정사각형 세포의 무한한 2 차원 직교 그리드이며, 각각은 두 가지 가능한 상태 중 하나에 살거나 죽은 채 (또는 인구가 채워지고 인구가없는)입니다. 모든 세포는 8 개의 이웃과 상호 작용하며, 이웃은 수평, 수직 또는 대각선으로 인접한 세포입니다. 각 단계에서 다음과 같은 전환이 발생합니다.
살아있는 이웃이 2 명 미만인 살아있는 셀은 마치 인구에 의해 사망합니다. 2 ~ 3 명의 살아있는 이웃이있는 라이브 셀은 다음 세대에 살고 있습니다. 세 명의 살아있는 이웃이있는 살아있는 셀은 마치 과잉 인구로 사망합니다. 정확히 세 명의 살아있는 이웃을 가진 죽은 셀은 마치 마치 생식에 의해 살아있는 세포가됩니다. 오토 마톤의 행동을 실생활과 비교하는이 규칙은 다음과 같이 압축 될 수 있습니다.
2 ~ 3 개의 살아있는 이웃이있는 살아있는 셀은 살아남습니다. 세 명의 살아있는 이웃이있는 죽은 셀은 살아있는 셀이됩니다. 다른 모든 살아있는 세포는 다음 세대에 죽습니다. 마찬가지로, 다른 모든 죽은 세포는 죽은 채로 있습니다. 초기 패턴은 시스템의 시드를 구성합니다. 1 세대는 위의 규칙을 종자의 모든 셀에 동시에 적용하여 만들어집니다. 출생과 사망은 동시에 발생하며, 이런 일이 발생하는 개별 순간은 때때로 진드기라고합니다. 각 세대는 이전 세대의 순수한 기능입니다. 더 많은 세대를 창출하기 위해 규칙이 계속 반복적으로 적용됩니다.
1940 년 말, John von Neumann은 삶을 자신을 재현하고 튜링 머신을 시뮬레이션 할 수있는 창조물 (존재 또는 유기체)으로 정의했습니다. Von Neumann은 액체 또는 가스에 무작위로 떠있는 전자기 성분을 사용하는 엔지니어링 솔루션에 대해 생각하고있었습니다. 이것은 당시 이용 가능한 기술로 현실적이지 않은 것으로 판명되었습니다. Stanislaw Ulam은 Von Neumann의 이론적 전자기 구성을 시뮬레이션하기위한 Cellular Automata를 발명했습니다. Ulam은 컴퓨터를 사용하여 여러 논문에서 2 차원 격자로 셀룰러 오토마타를 시뮬레이션하기 위해 논의했습니다. 동시에 Von Neumann은 Ulam의 Cellular Automaton을 건설하려고 시도했습니다. 성공했지만 그는 다른 프로젝트로 바빴고 일부 세부 사항은 미완성을 남겼습니다. 그의 건축은 자신의 엔지니어링 설계를 시뮬레이션하려고했기 때문에 복잡했습니다. 시간이 지남에 따라 다른 연구자들이 더 간단한 생명 구조를 제공하고 논문과 책에 출판했습니다.
John Conway는 수학 논리의 질문과 부분적으로 ULAM의 시뮬레이션 게임 작업에 의해 부분적으로 동기 부여 된 1968 년에 다양한 2 차원 셀룰러 오토 마톤 규칙으로 실험을 시작했습니다. 오토 마톤. 예를 들어, 그는 죽기 전에 오랫동안 지속되기를 원했고 다른 구성이주기를 허용하지 않고 영원히 계속되기를 원했습니다. Cellular Automata의 전문가들이 실제로 Von Neumann의 두 가지 일반적인 요구 사항을 만족시키는 의미에서 살아있는 구성을 인정했음을 증명하기 전에 몇 년 동안 중요한 도전과 공개 문제였습니다. 인생 게임 전의 정의는 증명 지향적이지만, Conway의 건축은 Automaton이 살아있는 증거를 제공하는 선험적 인 증거없이 단순성을 목표로했습니다.
Conway는 상당한 실험 후에 이러한 기준을 충족시키기 위해 그의 규칙을 신중하게 선택했습니다.
폭발적인 성장은 없어야합니다. 혼란스럽고 예측할 수없는 결과를 가진 작은 초기 패턴이 있어야합니다. Von Neumann Universal Constructors에게는 잠재력이 있어야합니다. 위의 제약 조건을 준수하면서 규칙은 가능한 한 간단해야합니다. 이 게임은 Martin Gardner의 "Mathematical Games"칼럼에서 1970 년 10 월 Scientific American 호에서 첫 공개 모습을 보였습니다. 이론적으로, 인생의 게임은 보편적 인 튜링 머신의 힘을 가지고 있습니다. 알고리즘 적으로 계산할 수있는 모든 것은 인생 게임 내에서 계산할 수 있습니다. Gardner는 "살아있는 유기체 사회의 상승, 추락 및 변화와의 삶의 비유로 인해 '시뮬레이션 게임'(실제 과정과 유사한 게임)의 성장수에 속합니다."
출판 이후, 인생 게임은 패턴이 진화 할 수있는 놀라운 방법 때문에 많은 관심을 끌었습니다. 그것은 출현과 자기 조직의 예를 제공합니다. 컴퓨터 과학, 물리, 생물학, 생화학, 경제학, 수학, 철학 및 생성 과학과 같은 다양한 분야의 학자들은 게임의 간단한 규칙을 구현함으로써 복잡한 패턴이 나타날 수있는 방식을 사용했습니다. 이 게임은 또한 디자이너가 없을 때 디자인과 조직이 자발적으로 나타날 수있는 다소 반 직관적 인 개념을 전달하는 데 사용되는 교훈적인 비유 역할을 할 수 있습니다. 예를 들어,인지 과학자 Daniel Dennett는 인생의 게임 "우주"의 비유를 사용하여 광범위하게 사용하여 의식과 자유 의지와 같은 복잡한 철학적 구성의 가능한 진화를 비교적 간단한 결정 론적 물리 법칙 세트에서 우리를 지배 할 수 있습니다. 우주.
인생 게임의 인기는 점점 더 저렴한 컴퓨터 액세스와 동시에 오는 데 도움이되었습니다. 이 게임은이 기계에서 몇 시간 동안 실행될 수 있으며, 그렇지 않으면 밤에는 사용되지 않은 채로 남아있을 것입니다. 이와 관련하여, 그것은 컴퓨터에서 생성 된 프랙탈의 이후 인기를 예고했다. 많은 사람들에게 인생 게임은 단순히 프로그래밍 도전이었습니다. 다른 낭비 된 CPU 사이클을 사용하는 재미있는 방법입니다. 그러나 어떤 사람들에게는 인생의 게임은 더 철학적 인 의미를 가졌습니다. 그것은 1970 년대를 넘어서서 컬트를 발전시켰다. 현재의 발전은 생명의 게임 보드의 경계 내에서 컴퓨터 시스템의 이론적 에뮬레이션을 만들기 위해 진행되었습니다.
로딩 ...