class MineSweeper::Cell

Attributes

adjacent_mines[R]
cleared[R]
flagged[R]
mine[R]

Public Class Methods

new() click to toggle source
# File lib/mine-sweeper/cell.rb, line 7
def initialize
  @mine = false
  @cleared = false
  @flagged = false
  @adjacent_mines = 0
end

Public Instance Methods

clear() click to toggle source
# File lib/mine-sweeper/cell.rb, line 27
def clear
  @cleared = true unless flagged
end
count_adjacent_mine() click to toggle source
# File lib/mine-sweeper/cell.rb, line 23
def count_adjacent_mine
  @adjacent_mines += 1
end
exploded?() click to toggle source

This ends the game!

# File lib/mine-sweeper/cell.rb, line 15
def exploded?
  mine && cleared
end
flag() click to toggle source
# File lib/mine-sweeper/cell.rb, line 31
def flag
  @flagged = true unless cleared
end
place_mine() click to toggle source
# File lib/mine-sweeper/cell.rb, line 19
def place_mine
  @mine = true
end
to_s() click to toggle source
# File lib/mine-sweeper/cell.rb, line 39
def to_s
  if cleared
    cleared_string_states
  else
    uncleared_string_states
  end
end
unflag() click to toggle source
# File lib/mine-sweeper/cell.rb, line 35
def unflag
  @flagged = false
end

Private Instance Methods

cleared_string_states() click to toggle source
# File lib/mine-sweeper/cell.rb, line 49
def cleared_string_states
  return "✷" if exploded?
  if adjacent_mines == 0
    " "
  else
    adjacent_mines.to_s
  end
end
uncleared_string_states() click to toggle source
# File lib/mine-sweeper/cell.rb, line 58
def uncleared_string_states
  if flagged
    "⚑"
  else
    "█"
  end
end