1. def arr_from_words_at_loc word_loc
  2. words_file = File.new(word_loc, "r")
  3. words_string = words_file.gets
  4. words_file.close
  5. words_arr = words_string.split ","
  6. formatted_words_arr = words_arr.collect{ |word| word[1...-1] }
  7. words_arr = nil
  8. formatted_words_arr
  9. end
  10.  
  11. def is_triangle_num n
  12. return true if ((8*n+1)**0.5)%1 == 0
  13. return false
  14. end
  15.  
  16. def value_of_char char
  17. char-64
  18. end
  19.  
  20. def convert_word_to_num word
  21. word.each_char.inject(0) { |wordnum, char| wordnum + value_of_char(char[0])}
  22. end
  23.  
  24. def num_of_tri_words_in_arr arr
  25. arr.inject(0) { |num, currword|
  26. if is_triangle_num(convert_word_to_num(currword))
  27. num += 1
  28. else
  29. num
  30. end
  31. }
  32. end
  33.  
  34. words = arr_from_words_at_loc "words.txt"
  35. num_of_tri_words = num_of_tri_words_in_arr words
  36. p num_of_tri_words