Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save edhends/8394092 to your computer and use it in GitHub Desktop.
Save edhends/8394092 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1 boggle class challenge
class GameBoard
def initialize(board)
@board = board
end
def create_word(*coords)
puts coords.map { |coord| @board[coord.first][coord.last]}.join("")
end
def get_letter(row, col)
puts @board[row][col]
end
def get_row(row)
p @board[row]
end
def get_col(col)
p @board.map {|row| row[col]}
end
def get_diagonal(row1, col1, row2, col2)
row_dif = row2 - row1
col_dif = col2 - col1
if row_dif.abs != col_dif.abs
raise ArgumentError.new("Not a diagonal!")
end
diag_array = [@board[row1][col1]]
while row1 != row2
row1 += (row_dif > 0) ? 1 : -1
col1 += (col_dif > 0) ? 1 : -1
diag_array << @board[row1][col1]
end
p diag_array
end
end
__________________________________________________________________________________________
# Driver code for all tests:
boggle_board = GameBoard.new([["b", "r", "a", "e"],
["i", "o", "d", "t"],
["e", "c", "l", "r"],
["t", "a", "k", "e"]])
boggle_board.create_word([2,1], [1,1], [1,2], [0,3]) #=> returns "code"
boggle_board.create_word([0,1], [0,2], [1,2]) #=> returns "rad"
# create two more calls to create_word
boggle_board.create_word([0,0], [0,1], [1,1], [0,2], [1,2]) #=> returns "broad"
boggle_board.create_word([1,3], [2,3], [3,3], [3,2]) #=> returns "trek"
# print a row
boggle_board.get_row(1) #=> ["i", "o", "d", "t"]
boggle_board.get_row(0) #=> ["b", "r", "a", "e"]
boggle_board.get_row(3) #=> ["t", "a", "k", "e"]
# print a column
boggle_board.get_col(1) #=> ["r", "o", "c", "a"]
boggle_board.get_col(3) #=> ["e", "t", "r", "e"]
boggle_board.get_col(0) #=> ["b", "i", "e", "t"]
# Get a single letter
boggle_board.get_letter(3,2) #=> "k"
# print a diagonal
boggle_board.get_diagonal(0,0,3,3) #=> ["b","o","l","e"]
boggle_board.get_diagonal(3,0,0,3) #=> ["t","c","d","e"]
__________________________________________________________________________________________________
# Output:
code
rad
broad
trek
["i", "o", "d", "t"]
["b", "r", "a", "e"]
["t", "a", "k", "e"]
["r", "o", "c", "a"]
["e", "t", "r", "e"]
["b", "i", "e", "t"]
k
["b", "o", "l", "e"]
["t", "c", "d", "e"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment