Я играю с оптимизированной реализацией жизни в swift/mac_os_x. Первый шаг: рандомизируйте большую сетку ячеек (50% в живых).
код:
for(var i=0;i<768;i++){
for(var j=0;j<768;j++){
let r = Int(arc4random_uniform(100))
let alive = (aliveOdds > r)
self.setState(alive,cell: Cell(tup:(i,j)),cells: aliveCells)
}
}
Я ожидаю относительно равномерную случайность. У меня есть определенные шаблоны:
Масштабирование немного в левом нижнем углу:
(Я изменил цвет на черный на каждые 32 строки и столбца, чтобы увидеть, выстроены ли шаблоны с любой мощностью 2).
Любая подсказка, что вызывает шаблоны? Я пробовал:
- заменить arc4random на
rand()
. - добавление
arc4stir()
перед каждым вызовом arc4random_uniform - перемещение дисплея (чтобы гарантировать, что шаблон находится в данных, а не сбой отображения)
Идеи на следующих шагах?