2011-11-19 4 views
1

좋아, 그래서 나는 삶의 게임을 코딩하고있다. 나는 거의 끝났지 만, 세포를 살아 있고 죽이기 위해 사용 된 알고리즘에 문제가있다. 계산 함수에서 찾을 수있다. . 여기 생명의 게임 - 알고리즘 문제 C++

내가 점점 오전 입력 : http://ideone.com/ywEtC

그리고 여기 내가 사용하는 동일한 패턴으로 사이트에서 (의견에서 발견)을 screenie을이며, 그것은 의도 된 출력을 보여줍니다.

새로 만든 셀을 이웃으로 간주하지 않으려 고 노력했지만 더 악화되었습니다. 참조 용 소스는 다음에서 찾을 수 있습니다. https://github.com/Legitimate/Conway-s-Game-of-Life/blob/master/gameoflife4.cpp

+0

다음은 의도 한 출력입니다. http://i.minus.com/iIPLE7LoZSU7t.png – Legitimate

답변

6

값을 변경 한 후에 다른 값은 원래 값을 알 수 없기 때문에 버퍼를 두 번 사용해야합니다.
예 :

--- 
+++ 
--- 

(0, 1)는 하나 개의 이웃을 갖고 다이해야

--- 
-++ 
--- 

(1,1)는 하나 개의 이웃을 갖고 다이해야

--- 
--+ 
--- 

을 (2, 1) : 0 이웃을 가지며 죽어야합니다 :

--- 
--- 
--- 

아픈 :

-+- 
-+- 
-+- 

또한, char 배열의 사용은 매우 비효율적이다, 당신은 차원이, 또한 이중 버퍼링을 쉽게 할 수 있도록 bit_vector 워프해야합니다.

+1

이것은 인터넷에서 내가 들어 본 최고의 물건입니다. 이제 나는 사람들이 2 차원 어레이를 가지고있는 이유를 알게되었습니다. 고마워 친구! – Legitimate

관련 문제