From f7735e16fe882013e119b6f55555df1ccda1557c Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Wed, 20 Feb 2019 14:37:19 -0800 Subject: [PATCH 1/8] Wave 1 --- adagrams.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 adagrams.rb diff --git a/adagrams.rb b/adagrams.rb new file mode 100644 index 0000000..295f860 --- /dev/null +++ b/adagrams.rb @@ -0,0 +1,25 @@ +letters = [] + +def draw_letters + alphabet = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "c", "c", "d", "d", "d", "d", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "f", "f", "g", "g", "g", "h", "h", "i", "i", "i", "i", "i", "i", "i", "i", "i", "j", "k", "l", "l", "l", "l", "m", "m", "n", "n", "n", "n", "n", "n", "o", "o", "o", "o", "o", "o", "o", "o", "p", "p", "q", "r", "r", "r", "r", "r", "r", "s", "s", "s", "s", "t", "t", "t", "t", "t", "t", "u", "u", "u", "u", "v", "v", "w", "w", "x", "y", "y", "z"] + # letters = [] + letters = alphabet.sample(10) + + return letters +end + +p draw_letters + +# puts "Give me word: " +# word = gets.chomp + +# def uses_available_letters?(input, letters_in_hand) +# input_array = input.split(//) +# if letters_in_hand.include? input_array +# return true +# else +# return false +# end +# end + +# puts uses_available_letters?(word, letters) From 53efa1e991727af67c282665f1d5b45fb7c1f3fd Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Wed, 20 Feb 2019 14:40:23 -0800 Subject: [PATCH 2/8] Wave 1 --- lib/adagrams.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index e69de29..6a6298e 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -0,0 +1,9 @@ +def draw_letters + alphabet = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "c", "c", "d", "d", "d", "d", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "f", "f", "g", "g", "g", "h", "h", "i", "i", "i", "i", "i", "i", "i", "i", "i", "j", "k", "l", "l", "l", "l", "m", "m", "n", "n", "n", "n", "n", "n", "o", "o", "o", "o", "o", "o", "o", "o", "p", "p", "q", "r", "r", "r", "r", "r", "r", "s", "s", "s", "s", "t", "t", "t", "t", "t", "t", "u", "u", "u", "u", "v", "v", "w", "w", "x", "y", "y", "z"] + letters = [] + letters = alphabet.sample(10) + + return letters +end + +# puts draw_letters From 2052eca0a35e1f73b699b907c50fba27a0287d9e Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Wed, 20 Feb 2019 16:39:50 -0800 Subject: [PATCH 3/8] Added Wave 2 --- lib/adagrams.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 6a6298e..3700d30 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -6,4 +6,19 @@ def draw_letters return letters end -# puts draw_letters +def uses_available_letters?(input, letters_in_hand) + split_word = input.split(//) + split_word_length = split_word.length + letters_in_hand_length = letters_in_hand.length + + split_word.each do |l| + index = letters_in_hand.index(l) + if letters_in_hand.index(l) != nil + letters_in_hand.delete_at(index) + # return true + else + return false + end + end + return true +end From a3a1ae609a50efae017e5124fef07bda43434ce3 Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Wed, 20 Feb 2019 16:52:46 -0800 Subject: [PATCH 4/8] Deleted unneccessary line --- lib/adagrams.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 3700d30..c734042 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -8,8 +8,6 @@ def draw_letters def uses_available_letters?(input, letters_in_hand) split_word = input.split(//) - split_word_length = split_word.length - letters_in_hand_length = letters_in_hand.length split_word.each do |l| index = letters_in_hand.index(l) From 32daebe190a9aeb9105a572d0e6200c1ca071d73 Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Wed, 20 Feb 2019 18:07:44 -0800 Subject: [PATCH 5/8] Added Wave 3, working on Wave 4 --- lib/adagrams.rb | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index c734042..43e5f37 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -20,3 +20,88 @@ def uses_available_letters?(input, letters_in_hand) end return true end + +def score_word(word) + letters_values = { + "a" => 1, + "b" => 3, + "c" => 3, + "d" => 2, + "e" => 1, + "f" => 4, + "g" => 2, + "h" => 4, + "i" => 1, + "j" => 8, + "k" => 5, + "l" => 1, + "m" => 3, + "n" => 1, + "o" => 1, + "p" => 3, + "q" => 10, + "r" => 1, + "s" => 1, + "t" => 1, + "u" => 1, + "v" => 4, + "w" => 4, + "x" => 8, + "y" => 4, + "z" => 10, + } + + # split_word = word.downcase.split(//) + # word_value_array = [] + # if word < 7 + # split_word.each do |letter| + # word_value_array << letters_values[letter] + # end + # return word_value_array.reduce(:+) + # elsif word >= 7 + # split_word.each do |letter| + # word_value_array << letters_values[letter] + # end + # return word_value_array.reduce(:+) + 8 + + split_word = word.downcase.split(//) + word_value_array = [] + split_word.each do |letter| + word_value_array << letters_values[letter] + end + if word.length < 7 + score = word_value_array.reduce(:+) + elsif word.length == 0 + score = 0 + else + score = word_value_array.reduce(:+) + 8 + end + + return score.to_i +end + +def highest_score_from(words) + score_array = [] + score_hash = {} #words => score_array + + words.each do |word| + score_array << score_word(word) + end + # score_hash.keys = words + # score_hash.values = score_array + + # max_score = score_array.max + # index = score_array.index(max_score) + + # max_pairs = score_array.select { |k, v| v == max_score } + # max_pairs.each do |k, v| + # puts "Person #{k}'s vehicle." + # most_economical_vehicle = v + # end + + best_word = { + word: words[index], + score: max_score, + } + return best_word +end From 003b62adf67c3ced4e096689a4de0677fc11e299 Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Thu, 21 Feb 2019 15:27:01 -0800 Subject: [PATCH 6/8] Wave 4 added --- adagrams.rb | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 adagrams.rb diff --git a/adagrams.rb b/adagrams.rb deleted file mode 100644 index 295f860..0000000 --- a/adagrams.rb +++ /dev/null @@ -1,25 +0,0 @@ -letters = [] - -def draw_letters - alphabet = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "c", "c", "d", "d", "d", "d", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "f", "f", "g", "g", "g", "h", "h", "i", "i", "i", "i", "i", "i", "i", "i", "i", "j", "k", "l", "l", "l", "l", "m", "m", "n", "n", "n", "n", "n", "n", "o", "o", "o", "o", "o", "o", "o", "o", "p", "p", "q", "r", "r", "r", "r", "r", "r", "s", "s", "s", "s", "t", "t", "t", "t", "t", "t", "u", "u", "u", "u", "v", "v", "w", "w", "x", "y", "y", "z"] - # letters = [] - letters = alphabet.sample(10) - - return letters -end - -p draw_letters - -# puts "Give me word: " -# word = gets.chomp - -# def uses_available_letters?(input, letters_in_hand) -# input_array = input.split(//) -# if letters_in_hand.include? input_array -# return true -# else -# return false -# end -# end - -# puts uses_available_letters?(word, letters) From a7d188588e6c96daa687dea659d8193399e59324 Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Fri, 22 Feb 2019 14:07:28 -0800 Subject: [PATCH 7/8] Wave 5 added --- lib/adagrams.rb | 65 +++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 37 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 43e5f37..d1bacd5 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,3 +1,5 @@ +require "csv" + def draw_letters alphabet = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "c", "c", "d", "d", "d", "d", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "f", "f", "g", "g", "g", "h", "h", "i", "i", "i", "i", "i", "i", "i", "i", "i", "j", "k", "l", "l", "l", "l", "m", "m", "n", "n", "n", "n", "n", "n", "o", "o", "o", "o", "o", "o", "o", "o", "p", "p", "q", "r", "r", "r", "r", "r", "r", "s", "s", "s", "s", "t", "t", "t", "t", "t", "t", "u", "u", "u", "u", "v", "v", "w", "w", "x", "y", "y", "z"] letters = [] @@ -13,7 +15,6 @@ def uses_available_letters?(input, letters_in_hand) index = letters_in_hand.index(l) if letters_in_hand.index(l) != nil letters_in_hand.delete_at(index) - # return true else return false end @@ -51,57 +52,47 @@ def score_word(word) "z" => 10, } - # split_word = word.downcase.split(//) - # word_value_array = [] - # if word < 7 - # split_word.each do |letter| - # word_value_array << letters_values[letter] - # end - # return word_value_array.reduce(:+) - # elsif word >= 7 - # split_word.each do |letter| - # word_value_array << letters_values[letter] - # end - # return word_value_array.reduce(:+) + 8 - split_word = word.downcase.split(//) - word_value_array = [] + word_value = [] split_word.each do |letter| - word_value_array << letters_values[letter] + word_value << letters_values[letter] end if word.length < 7 - score = word_value_array.reduce(:+) + score = word_value.reduce(:+) elsif word.length == 0 score = 0 else - score = word_value_array.reduce(:+) + 8 + score = word_value.reduce(:+) + 8 end return score.to_i end def highest_score_from(words) - score_array = [] - score_hash = {} #words => score_array - + best_word = { + word: "", + score: 0, + } words.each do |word| - score_array << score_word(word) + score = score_word(word) + if score > best_word[:score] + best_word[:score] = score + best_word[:word] = word + elsif score == best_word[:score] + if word.length == 10 && best_word[:word].length != 10 + best_word[:word] = word + elsif (word.length < best_word[:word].length) && (best_word[:word].length != 10) + best_word[:word] = word + end + end end - # score_hash.keys = words - # score_hash.values = score_array - - # max_score = score_array.max - # index = score_array.index(max_score) - # max_pairs = score_array.select { |k, v| v == max_score } - # max_pairs.each do |k, v| - # puts "Person #{k}'s vehicle." - # most_economical_vehicle = v - # end - - best_word = { - word: words[index], - score: max_score, - } return best_word end + +def is_in_english_dict?(input) + CSV.open("assets/dictionary-english.csv", "r").each do |word| + return true if word.include?(input) + end + return false +end From e5f70598fda4ad7e9deb05120df484ec1fb5fb50 Mon Sep 17 00:00:00 2001 From: Jillianne Ramirez Date: Fri, 22 Feb 2019 14:30:50 -0800 Subject: [PATCH 8/8] Added enumerable methods --- lib/adagrams.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index d1bacd5..0f91b8a 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -53,10 +53,11 @@ def score_word(word) } split_word = word.downcase.split(//) - word_value = [] - split_word.each do |letter| - word_value << letters_values[letter] + + word_value = split_word.map do |letter| + letters_values[letter] end + if word.length < 7 score = word_value.reduce(:+) elsif word.length == 0