Forked from dbc-challenges/0.2.1-boggle_class_from_methods.rb
Last active
January 3, 2016 02:09
-
-
Save edhends/8394092 to your computer and use it in GitHub Desktop.
phase 0 unit 2 week 1
boggle class challenge
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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