내가 만든 알고리즘 (Conway의 Game of Life의 규칙 구현)이 Conway의 GoL과 일치하지 않습니다. 나는 내가 할 수있는 모든 것에 관해서 노력했다. 그러나 그것은 단지 일치하지 않는다.Conway의 Game of Life - 잘못된 알고리즘?
또한 누군가가 무한한 비행기로 만들거나 자체적으로 랩하는 방법을 알고 있다면 내 코드로 구현되는 것을보고 싶을 것입니다. (라인 28)
var x2 = x+1, x3 = x-1, y2 = y+1, y3 = y-1; // Math
if(tC[x][y3] !== undefined && tC[x][y3]) ne++; // T
if(tC[x][y2] !== undefined && tC[x][y2]) ne++; // TR
if(tC[x2] !== undefined) {
if(tC[x2][y]) ne++; // R
if(tC[x2][y3] !== undefined && tC[x2][y3]) ne++; // BR
if(tC[x2][y2] !== undefined && tC[x2][y2]) ne++; // B
}
if(tC[x3] !== undefined) {
if(tC[x3][y]) ne++; // BL
if(tC[x3][y3] !== undefined && tC[x3][y3]) ne++; // L
if(tC[x3][y2] !== undefined && tC[x3][y2]) ne++; // TL
}
그리고 알고리즘 : (라인 50)
if(cell && (ne < 2 || ne > 3)) cell = 0; // Over- or under- populated?
else if(!cell && ne == 3) cell = 1; // Give life?
주변의 살아있는 세포에 대한 세포를 확인
: http://jsfiddle.net/jGkKF/2/
타당한 코드 : JSFiddle 실행
나는 참조를 의미합니다. 그것은 그것이 한정된 사각형이기 때문에 존재하는지, 그리고 그것이 살아 있는지를 검사합니다. 둘 다 맞으면 계산됩니다. – Alca
세대 간을 수행하는 동안 셀 행렬을 업데이트하는 경우, "세계"그리드의 다음 행을 확인해야하는 셀을 수정하므로 작동하지 않습니다. * 두 개의 그리드 사이에서 앞뒤로 전환하여 작업하게 만들 수 있습니다. – Pointy
Ah. 글쎄 그건 최적은 아니지만, 내가 할게. – Alca