Forked from dbc-challenges/0.2.1-boggle_class_from_methods.rb
Last active
January 3, 2016 00:49
-
-
Save mattlewissf/8384939 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 BoggleBoard | |
def initialize(board) | |
@board = board | |
end | |
def create_word(*coords) | |
coords.map { |coord| @board[coord.first][coord.last]}.join("") | |
end | |
#Objective 2 : write method to return row elements. | |
def get_row(row) | |
return @board[row].join("") | |
end | |
#Objective 3 : Write method to return column elements. | |
def get_col(col) | |
required_col = [] | |
@board.length.times do |row| | |
required_col << @board[row][col] | |
end | |
return required_col.join("") | |
end | |
def get_diagonal(start_corner_row = 0, start_corner_column = 0) | |
diagonal_array = [] | |
if start_corner_row == 0 && start_corner_column == 0 | |
@board.length.times do | |
diagonal_array << @board[start_corner_row][start_corner_column] | |
start_corner_row +=1 | |
start_corner_column +=1 | |
end | |
elsif start_corner_row == 0 && start_corner_column == 3 # can also be @board.length-1 (-1 as count starts from zero) | |
@board.length.times do | |
diagonal_array << @board[start_corner_row][start_corner_column] | |
start_corner_row +=1 | |
start_corner_column -=1 | |
end | |
elsif start_corner_row == 3 && start_corner_column == 0 | |
@board.length.times do | |
diagonal_array << @board[start_corner_row][start_corner_column] | |
start_corner_row -=1 | |
start_corner_column +=1 | |
end | |
elsif start_corner_row == 3 && start_corner_column == 3 | |
@board.length.times do | |
diagonal_array << @board[start_corner_row][start_corner_column] | |
start_corner_row -=1 | |
start_corner_column -=1 | |
end | |
end | |
return diagonal_array.inspect | |
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) | |
puts boggle_board.create_word([3,0],[3,1],[2,2],[3,2]) #=> returns "talk" | |
puts boggle_board.get_row(0) #brae | |
puts boggle_board.get_row(1) #iodt | |
puts boggle_board.get_row(2) #eclr | |
puts boggle_board.get_row(3) #take - is a word | |
puts "------inspecting joined columns" | |
puts boggle_board.get_col(0) #biet | |
puts boggle_board.get_col(1) #roca | |
puts boggle_board.get_col(2) #adlk | |
puts boggle_board.get_col(3) #etre | |
puts "------Accessing a co-ordinate-------------------------" | |
puts boggle_board.get_col(2).split("")[3] | |
puts "------Get Diagonal------------------------------------" | |
puts boggle_board.get_diagonal | |
puts boggle_board.get_diagonal(3,3) | |
puts boggle_board.get_diagonal(3,0) | |
puts boggle_board.get_diagonal(0,3) | |
# puts create_word(boogle_board, [0,0], [0,1], [1,0], [2,0]) #=> returns "brie" | |
# puts create_word(boogle_board, [3,0], [3,1], [2,2], [3,2]) #=> returns "talk" | |
#Objective 2 driver code | |
#puts " ------------------------ " | |
#puts "Checking for Boggle Board rows" | |
#puts boggle_board.get_row(0) #=> "t", "a", "l", "k"] | |
#puts boggle_board.get_row(1) #=> ["i", "o", "d", "t"] | |
#puts boggle_board.get_row(2) #=> ["e", "c", "l", "r"] | |
#puts boggle_board.get_row(4) #=> nil | |
#Objective 3 driver code | |
#puts " ------------------------ " | |
#puts "Checking for Boggle Board columns" | |
#puts boggle_board.get_col(0) #=> ["b", "i", "e", "t"] | |
#puts boggle_board.get_col(1) #=> ["r", "o", "c", "a"] | |
#puts boggle_board.get_col(2) #=> ["a", "d", "l", "k"] | |
#puts boggle_board.get_col(3) #=> ["e", "t", "r", "e"] | |
#puts boggle_board.get_col(4) #=> [nil, nil, nil, nil] | |
#your code here | |
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) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment