11class WordSearch
22 attr_reader :data , :word
33
4- def initialize ( data , word = " XMAS" )
4+ def initialize ( data , word = ' XMAS' )
55 @data = data
66 @word = word
77 end
@@ -19,14 +19,14 @@ def count_at(row, col)
1919 end
2020
2121 def letter_at ( row , col )
22- in_bounds? ( row , col ) ? data [ row ] [ col ] : ""
22+ in_bounds? ( row , col ) ? data [ row ] [ col ] : ''
2323 end
2424
2525 def horizontal_word ( row , col )
2626 first = col
2727 last = col + word . length - 1
2828
29- return "" unless in_bounds? ( first , last )
29+ return '' unless in_bounds? ( first , last )
3030
3131 data [ row ] [ first ..last ] * ''
3232 end
@@ -36,7 +36,7 @@ def horizontal?(row, col)
3636 end
3737
3838 def vertical_word ( row , col )
39- ( row ..row + word . length - 1 ) . map do |pos |
39+ ( row ..row + word . length - 1 ) . map do |pos |
4040 letter_at ( pos , col )
4141 end * ''
4242 end
@@ -47,25 +47,25 @@ def vertical?(row, col)
4747
4848 def diagonal_top_left_word ( row , col )
4949 ( 0 ..word . length - 1 ) . map do |pos |
50- letter_at ( row - pos , col - pos )
50+ letter_at ( row - pos , col - pos )
5151 end * ''
5252 end
5353
5454 def diagonal_top_right_word ( row , col )
5555 ( 0 ..word . length - 1 ) . map do |pos |
56- letter_at ( row - pos , col + pos )
57- end * ""
56+ letter_at ( row - pos , col + pos )
57+ end * ''
5858 end
5959
6060 def diagonal_bottom_right_word ( row , col )
6161 ( 0 ..word . length - 1 ) . map do |pos |
62- letter_at ( row + pos , col + pos )
62+ letter_at ( row + pos , col + pos )
6363 end * ''
6464 end
6565
6666 def diagonal_bottom_left_word ( row , col )
6767 ( 0 ..word . length - 1 ) . map do |pos |
68- letter_at ( row + pos , col - pos )
68+ letter_at ( row + pos , col - pos )
6969 end * ''
7070 end
7171
@@ -74,10 +74,10 @@ def match?(str)
7474 end
7575
7676 def cross_word_at? ( row , col )
77- cross_word = " MAS"
77+ cross_word = ' MAS'
7878
79- diag_1 = letter_at ( row - 1 , col - 1 ) + letter_at ( row , col ) + letter_at ( row + 1 , col + 1 )
80- diag_2 = letter_at ( row + 1 , col - 1 ) + letter_at ( row , col ) + letter_at ( row - 1 , col + 1 )
79+ diag_1 = letter_at ( row - 1 , col - 1 ) + letter_at ( row , col ) + letter_at ( row + 1 , col + 1 )
80+ diag_2 = letter_at ( row + 1 , col - 1 ) + letter_at ( row , col ) + letter_at ( row - 1 , col + 1 )
8181
8282 diag_1_match = [ cross_word , cross_word . reverse ] . any? { |str | str == diag_1 }
8383 diag_2_match = [ cross_word , cross_word . reverse ] . any? { |str | str == diag_2 }
@@ -122,8 +122,8 @@ def diagonal_count_at(row, col)
122122 diagonal_top_right_word ( row , col ) ,
123123 diagonal_top_left_word ( row , col ) ,
124124 diagonal_bottom_right_word ( row , col ) ,
125- diagonal_bottom_left_word ( row , col ) ,
126- ] . sum { |str | str == word ? 1 : 0 }
125+ diagonal_bottom_left_word ( row , col )
126+ ] . sum { |str | str == word ? 1 : 0 }
127127 end
128128
129129 def diagonal_count
@@ -147,3 +147,9 @@ def render
147147 end
148148 end
149149end
150+
151+ def badName
152+ return unless something
153+
154+ test
155+ end
0 commit comments