Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save OsagieDev/8175603 to your computer and use it in GitHub Desktop.
Save OsagieDev/8175603 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1 boggle class challenge
class BoggleBoard
attr_reader :board
def initialize(board)
@board = board
end
def create_word(*coords)
coords.map{ |coord| board[coord.first][coord.last]}.join("")
end
def get_row(row)
board[row]
end
def get_col(column)
board.map { |row| row.at(column)}
end
def get_letter(row, column)
board[row][column]
end
def print_board
board.each {|row| puts "#{row.join ", "}\n"}
board.transpose.each{|column| puts "#{column.join ", "}\n"}
end
end
dice_grid = [["b", "r", "a", "e"],
["i", "o", "d", "t"],
["e", "c", "l", "r"],
["t", "a", "k", "e"]]
boggle_board = BoggleBoard.new(dice_grid)
puts "Accessing a coordinate below"
p boggle_board.get_letter(3,2) #=> "k"
puts
puts "Creating a word below"
puts boggle_board.create_word([1,2], [1,1], [2,1], [3,2]) # => Creates "dock"
puts
puts "Getting Row below"
p boggle_board.get_row(0) # => ["b", "r", "a", "e"]
puts
puts "Getting Column below"
p boggle_board.get_col(3) # => ["e", "t", "r", "e"]
puts
puts "Printing all Rows and Columns below"
boggle_board.print_board # => prints all rows, then all columns of board
=begin
b, r, a, e
i, o, d, t
e, c, l, r
t, a, k, e
b, i, e, t
r, o, c, a
a, d, l, k
e, t, r, e
=end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment