Class: Minesweeper::Core::Explosives::MineLayer
- Inherits:
-
Object
- Object
- Minesweeper::Core::Explosives::MineLayer
- Defined in:
- lib/minesweeper/core/explosives/mine_layer.rb
Instance Method Summary collapse
-
#initialize(a_minefield, a_mine_generator) ⇒ MineLayer
constructor
A new instance of MineLayer.
- #lay(quantity) ⇒ Object
Constructor Details
#initialize(a_minefield, a_mine_generator) ⇒ MineLayer
Returns a new instance of MineLayer.
5 6 7 8 9 10 |
# File 'lib/minesweeper/core/explosives/mine_layer.rb', line 5 def initialize(a_minefield, a_mine_generator) raise ArgumentError if a_minefield.nil? raise ArgumentError if a_mine_generator.nil? @generator = a_mine_generator @minefield = a_minefield end |
Instance Method Details
#lay(quantity) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/minesweeper/core/explosives/mine_layer.rb', line 12 def lay(quantity) laid_mines = [] quantity.times do loop do coords = @generator.create(@minefield.row_count) if laid_mines.include?(coords) next else laid_mines << coords @minefield.hide_mine_at(coords.row_index, coords.col_index) break end end end end |