Как стать автором
Обновить

Комментарии 5

Есть ещё вариант со множествами из координат (по множеству на каждый цвет), это позволяет работать с квазибесконечными полями:

Спасибо, как понимаю, вся магия происходит через обсчет состояния отдельной клетки

for( let y = -1 ; y <= 1 ; ++y ) for( let x = -1 ; x <= 1 ; ++x ) { if( !x && !y ) continue
if( prev.has( key( nx + x , ny + y ) ) ) ++sum
}
if( sum != 3 && ( !prev.has( nkey ) || sum !== 2 ) ) continue state.add( nkey )
И функцию key(x, y), возвращающую состояние ячейки с произвольными координатами

Пересчёт происходит лишь вокруг живых клеток. А координаты упаковываются в int32, что позволяет использовать это число в качестве ключа.

НЛО прилетело и опубликовало эту надпись здесь

Если визуализация, то да. Если незатейливый number crunching - то, скорее openCL + wasm

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации