Skip to content

Commit

Permalink
Ongoing implementation of the minefield_initializer.
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastienatplumbee committed May 27, 2015
1 parent 5d434cb commit 241e0a1
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
12 changes: 11 additions & 1 deletion lib/minesweeper/console/minefield_initializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,17 @@ def generate(quantity_of_mines)
end

mines = []
quantity_of_mines.times { mines << [rand(@minefield.size), rand(@minefield.size)] }
quantity_of_mines.times do
loop do
a_mine = [rand(@minefield.size), rand(@minefield.size)]
if mines.include?(a_mine)
next
else
mines << a_mine
break
end
end
end
mines
end
end
Expand Down
8 changes: 1 addition & 7 deletions test/minesweeper/console/minefield_initializer_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,7 @@ def test_each_mine_has_unique_coordinates
assert_true(mines & mines == mines)
end

def test_when_generate_is_executed_twice_then_both_results_dont_match
a_minefield = Minesweeper::Minefield.new(2)
sut = MinefieldInitializer.new(a_minefield)
some_mines = sut.generate(2)
other_mines = sut.generate(2)
assert_not_equal(some_mines, other_mines)
end

end
end
end
Expand Down

0 comments on commit 241e0a1

Please sign in to comment.