Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save inslee0921/8723217 to your computer and use it in GitHub Desktop.
Save inslee0921/8723217 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1boggle class challenge
class BoggleBoard
def initialize(board)
@board = board
end
def create_word(board, *coords)
coords.map { |coord| board[coord.first][coord.last]}.join
end
def get_row(row)
p @board[row].join
end
def get_col(col)
p @board.map { |x| x[col] }.join
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)
# implement tests for each of the methods here:
p boggle_board.create_word(dice_grid, [1,2], [1,1], [2,1], [3,2]) #=> returns "dock"
boggle_board.get_row(0) #=> return "brae"
boggle_board.get_row(1) #=> return "iodt"
boggle_board.get_row(2) #=> return "eclr"
boggle_board.get_row(3) #=> return "take"
boggle_board.get_col(0) #=> return "biet"
boggle_board.get_col(1) #=> return "roca"
boggle_board.get_col(2) #=> return "adlk"
boggle_board.get_col(3) #=> return "etre"
# Access a coordinate
p boggle_board.create_word(dice_grid, [3,2]) == "k"
p boggle_board.create_word(dice_grid, [3,0], [3,1], [2,2], [3,3]) == "tale"
p boggle_board.create_word(dice_grid, [2,0], [3,0]) == "et"
p boggle_board.create_word(dice_grid, [2,1], [1,1], [1,2], [0,3]) == "code"
# Review and Reflect
# Even though Object Oriented approach looks longer, we can effciently reuse
# it for next time and easy to understand.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment