Skip to content

Commit 6c01a73

Browse files
committed
Rename grid to cells
1 parent 55c02e8 commit 6c01a73

File tree

2 files changed

+27
-27
lines changed

2 files changed

+27
-27
lines changed

lib/wave_function_collapse/model.rb

+16-16
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ def initialize(tiles, width, height)
2222
@tiles = tiles
2323
@width = width.to_i
2424
@height = height.to_i
25-
@grid = []
26-
@height.times { |y| @width.times { |x| @grid << Cell.new(x, y, @tiles.shuffle) } }
27-
@uncollapsed_cells_grid = @grid.reject(&:collapsed)
25+
@cells = []
26+
@height.times { |y| @width.times { |x| @cells << Cell.new(x, y, @tiles.shuffle) } }
27+
@uncollapsed_cells = @cells.reject(&:collapsed)
2828
@max_entropy = @tiles.length
2929
end
3030

3131
def cell_at(x, y)
32-
@grid[@width * y + x]
32+
@cells[@width * y + x]
3333
end
3434

3535
def complete?
36-
@uncollapsed_cells_grid.empty?
36+
@uncollapsed_cells.empty?
3737
end
3838

3939
def percent
40-
((@width * @height) - @uncollapsed_cells_grid.length.to_f) / (@width * @height) * 100
40+
((@width * @height) - @uncollapsed_cells.length.to_f) / (@width * @height) * 100
4141
end
4242

4343
def solve
@@ -47,7 +47,7 @@ def solve
4747
end
4848

4949
def iterate
50-
return false if @uncollapsed_cells_grid.empty?
50+
return false if @uncollapsed_cells.empty?
5151

5252
next_cell = find_lowest_entropy
5353
return false unless next_cell
@@ -57,13 +57,13 @@ def iterate
5757
end
5858

5959
def prepend_empty_row
60-
@grid = @grid.drop(@width)
61-
@grid.each { |cell| cell.y -= 1 }
60+
@cells = @cells.drop(@width)
61+
@cells.each { |cell| cell.y -= 1 }
6262
x = 0
6363
while x < @width
6464
new_cell = Cell.new(x, @height - 1, @tiles)
65-
@grid << new_cell
66-
@uncollapsed_cells_grid << new_cell
65+
@cells << new_cell
66+
@uncollapsed_cells<< new_cell
6767
x += 1
6868
end
6969
@width.times { |x|
@@ -72,7 +72,7 @@ def prepend_empty_row
7272
end
7373

7474
def random_cell
75-
@uncollapsed_cells_grid.sample
75+
@uncollapsed_cells.sample
7676
end
7777

7878
def generate_grid
@@ -95,8 +95,8 @@ def generate_grid
9595

9696
def process_cell(cell)
9797
cell.collapse
98-
@uncollapsed_cells_grid.delete(cell)
99-
return if @uncollapsed_cells_grid.empty?
98+
@uncollapsed_cells.delete(cell)
99+
return if @uncollapsed_cells.empty?
100100

101101
propagate(cell)
102102
end
@@ -153,14 +153,14 @@ def evaluate_neighbor(source_cell, evaluation_direction)
153153
end
154154

155155
neighbor_cell.tiles = new_tiles unless new_tiles.empty?
156-
@uncollapsed_cells_grid.delete(neighbor_cell) if neighbor_cell.collapsed
156+
@uncollapsed_cells.delete(neighbor_cell) if neighbor_cell.collapsed
157157

158158
# if the number of tiles changed, we need to evaluate current cell's neighbors now
159159
propagate(neighbor_cell) if neighbor_cell.tiles.length != original_tile_count
160160
end
161161

162162
def find_lowest_entropy
163-
ucg = @uncollapsed_cells_grid.to_a
163+
ucg = @uncollapsed_cells
164164
i = 0
165165
l = ucg.length
166166
min_e = ucg[0].entropy

test/test_model.rb

+11-11
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def test_initialize
1313

1414
assert_equal 320, model.width
1515
assert_equal 240, model.height
16-
assert_equal 320 * 240, model.grid.size
16+
assert_equal 320 * 240, model.cells.size
1717
assert_equal 3, model.max_entropy
1818
assert_equal 0, model.percent
1919
refute model.complete?
@@ -37,19 +37,19 @@ def test_prepend_empty_row
3737

3838
model.prepend_empty_row
3939

40-
assert_equal 4, model.grid.size
41-
assert_equal 1, model.grid[0].entropy
42-
assert_equal 1, model.grid[1].entropy
43-
assert_predicate model.grid[0], :collapsed?
44-
assert_predicate model.grid[0], :collapsed?
45-
assert_equal 3, model.grid[2].entropy
46-
assert_equal 3, model.grid[3].entropy
47-
refute_predicate model.grid[2], :collapsed?
48-
refute_predicate model.grid[3], :collapsed?
40+
assert_equal 4, model.cells.size
41+
assert_equal 1, model.cells[0].entropy
42+
assert_equal 1, model.cells[1].entropy
43+
assert_predicate model.cells[0], :collapsed?
44+
assert_predicate model.cells[0], :collapsed?
45+
assert_equal 3, model.cells[2].entropy
46+
assert_equal 3, model.cells[3].entropy
47+
refute_predicate model.cells[2], :collapsed?
48+
refute_predicate model.cells[3], :collapsed?
4949

5050
assert_equal 2, model.width
5151
assert_equal 2, model.height
52-
assert_equal 2 * 2, model.grid.size
52+
assert_equal 2 * 2, model.cells.size
5353
assert_equal 3, model.max_entropy
5454
assert_equal 50, model.percent
5555
end

0 commit comments

Comments
 (0)