Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save tylerstauss/8391911 to your computer and use it in GitHub Desktop.
Save tylerstauss/8391911 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1 boggle class challenge
# Solution for Challenge: A Nested Array to Model a Boggle Board. Started 2014-01-12T22:34:54+00:00
class BoggleBoard
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(col)
column = []
num = @board.length - 1
0.upto(num) do |n|
column.push @board[n][col]
end
column
end
def get_letter(row, col)
@board[row][col]
end
def get_diagonal(coord1, coord2)
diagonal = []
row1 = coord1[0]
col1 = coord1[1]
row2 = coord2[0]
col2 = coord2[1]
@board
end
end
dice_grid = [["b", "r", "a", "e"],
["i", "o", "d", "t"],
["e", "c", "l", "r"],
["t", "a", "k", "e"]]
# objective 2
boggle_board = BoggleBoard.new(dice_grid)
p boggle_board.create_word([1,2], [1,1], [2,1], [3,2]) == "dock"
p boggle_board.get_row(1) == ["i", "o", "d", "t"]
p boggle_board.get_col(2) == ["a", "d", "l", "k"]
p boggle_board.create_word([0,0], [0,1], [0,2], [1,3]) == "brat"
# all rows as string
puts boggle_board.get_row(0).join("")
puts boggle_board.get_row(1).join("")
puts boggle_board.get_row(2).join("")
puts boggle_board.get_row(3).join("")
# all columns as string
puts boggle_board.get_col(0).join("")
puts boggle_board.get_col(1).join("")
puts boggle_board.get_col(2).join("")
puts boggle_board.get_col(3).join("")
# objective 3
p boggle_board.get_letter(3,2) #=> "k"
# objective 4 - bonus
# reflect
# this challenge wasn't much different from the previous boggle board. I understand that now this is
# object oriented programming. I was unable to do the get_diagonal method by myself. I needed to research
# and find other people's solutions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment