Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jpark3000/7332298 to your computer and use it in GitHub Desktop.
Save jpark3000/7332298 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1 boggle class challenge
class BoggleBoard
attr_reader :dice_grid
def initialize(dice_grid)
@dice_grid = dice_grid
end
def create_word(*coords)
coords.map { |coord| dice_grid[coord.first][coord.last] }.join("")
end
def get_row(row)
dice_grid[row]
end
def get_col(col)
dice_grid.map { |row| row[col] }
end
def get_diagonal(row, col)
ary = []
ary << dice_grid[row][col]
until row == 3 || col == 3
ary << dice_grid[row += 1][col += 1]
end
ary
end
def display_all_cols_rows
ary = []
ary << dice_grid.map { |i| i.join }
ary << dice_grid.transpose.map { |i| i.join }
ary.flatten
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:
puts boggle_board.create_word([1,2], [1,1], [2,1], [3,2]) == "dock"
puts boggle_board.get_row(2) == ["e", "c", "l", "r"]
puts boggle_board.get_col(3) == ["e", "t", "r", "e"]
puts
puts boggle_board.display_all_cols_rows
puts
# create driver test code to retrieve a value at a coordinate here:
puts boggle_board.dice_grid[3][2] == "k"
puts boggle_board.get_diagonal(0,0) == ["b", "o", "l", "e"]
puts boggle_board.get_diagonal(0,2) == ["a", "t"]
puts boggle_board.get_diagonal(1,0) == ["i", "c", "k"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment