main
1class World
2 include Enumerable
3
4 def initialize(cells)
5 @cells = cells
6 end
7
8 def neighbors_for(cell)
9 @cells.find_all { |x| cell.neighbor?(x) }
10 end
11
12 def next_generation!
13 @cells = map { |cell| cell.spawn(self) }
14 end
15
16 def each
17 @cells.each do |cell|
18 yield cell
19 end
20 end
21
22 def empty?
23 !any? { |x| x.alive? }
24 end
25end