From 28a0df78dc217278f6ab5c0be1bb9a334d212541 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Mon, 13 Aug 2018 15:45:28 -0700 Subject: [PATCH 01/16] random letter created --- lib/adagrams.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index e69de29..e011e64 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -0,0 +1,13 @@ +# all letters +letters = %W(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 ) + +# range +max = letters.length +min = 0 + +# index used + + +# generate random index +index = Random.rand(min..max) +puts "#{letters[index]}" From ecdfa32bc9964b232dfeedffaa617b40c8364070 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Mon, 13 Aug 2018 16:04:46 -0700 Subject: [PATCH 02/16] checks for unique index --- lib/adagrams.rb | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index e011e64..f6c50ce 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,13 +1,25 @@ -# all letters -letters = %W(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 ) -# range -max = letters.length -min = 0 -# index used +def draw_letters + # all letters + letters = %W(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 ) + # range + max = letters.length + min = 0 -# generate random index -index = Random.rand(min..max) -puts "#{letters[index]}" + # index used + indices_used= [] + + # generate random index + index = Random.rand(min..max) + + # check if index is in indices_used array , if true generate new random index + while indices_used.include?(index) + index = Random.rand(min..max) + end + # if not is not in indices used, add it there + indices_used << index +end + +draw_letters From f98d05a50adefa048d25407e91a9795645f772f8 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Mon, 13 Aug 2018 16:16:27 -0700 Subject: [PATCH 03/16] method successfully outputs 10 random letters according to pool of letters --- lib/adagrams.rb | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index f6c50ce..756e519 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -14,12 +14,21 @@ def draw_letters # generate random index index = Random.rand(min..max) - # check if index is in indices_used array , if true generate new random index - while indices_used.include?(index) - index = Random.rand(min..max) + # get 10 unique indices, and saved them in indices used + 10.times do + # check if index is in indices_used array , if true generate new random index + while indices_used.include?(index) + index = Random.rand(min..max) + end + # if not is not in indices used, add it there + indices_used << index end - # if not is not in indices used, add it there - indices_used << index + + ten_letters = indices_used.map do |index| + letters[index] + end + + return ten_letters end -draw_letters +puts draw_letters From 4c7b3781cddbdbb74bee354767909cf466f1e456 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Mon, 13 Aug 2018 17:19:26 -0700 Subject: [PATCH 04/16] code still has some errors which are indicated in comments --- lib/adagrams.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 756e519..38775a2 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,6 +1,12 @@ +# outputs a nill for one of the letters +# check for if index = Random.rand(min..max) includes max? it's returning nill at some point, check using lower range + +# 1. write condition that checks if index is nill? if it give me another index + def draw_letters + # all letters letters = %W(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 ) @@ -31,4 +37,31 @@ def draw_letters return ten_letters end +letters_in_hand = draw_letters + puts draw_letters +puts "Make a word from all ten of those letters!" +input = gets.chomp! + +# it's not retuning true when the input is exactly as letters_in_hand +def uses_available_letters? (input, letters_in_hand) + input.each_char do |letter| + print letter + # check if letter exists in letters_in_hand + if letters_in_hand.include?(letter) + # if it exits, delete + letters_in_hand.delete(letter) + else + # user used a letter that does not exists + return puts "false" + end + end + # check if all letters in letters_in_hand were used + if letters_in_hand.empty? + return puts "true" + else + return puts "false" + end +end + +print uses_available_letters?(input, letters_in_hand) From 669c3c3c7ab9f77b4c96088f35e4bc4e6f83749d Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Tue, 14 Aug 2018 16:48:36 -0700 Subject: [PATCH 05/16] wave 1 and wave 2 passed tests --- lib/adagrams.rb | 47 ++++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 38775a2..66ebd13 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,17 +1,13 @@ - -# outputs a nill for one of the letters -# check for if index = Random.rand(min..max) includes max? it's returning nill at some point, check using lower range - -# 1. write condition that checks if index is nill? if it give me another index - - def draw_letters # all letters letters = %W(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 ) - + # convert to upcase + letters = letters.map do |letter| + letter.upcase + end # range - max = letters.length + max = letters.length - 1 min = 0 # index used @@ -37,31 +33,28 @@ def draw_letters return ten_letters end -letters_in_hand = draw_letters - -puts draw_letters -puts "Make a word from all ten of those letters!" -input = gets.chomp! - -# it's not retuning true when the input is exactly as letters_in_hand def uses_available_letters? (input, letters_in_hand) + result = [] + final_results = [] + input.each_char do |letter| + # check if letter exists in letters_in_han + if letters_in_hand.include?(letter) + result << true + else + # user used a letter that does not exists + result << false + end + end + final_results << result.all? { |value| value == true} + input.each_char do |letter| - print letter # check if letter exists in letters_in_hand if letters_in_hand.include?(letter) - # if it exits, delete letters_in_hand.delete(letter) else # user used a letter that does not exists - return puts "false" + final_results << false end end - # check if all letters in letters_in_hand were used - if letters_in_hand.empty? - return puts "true" - else - return puts "false" - end + final_results.all? { |value| value == true} end - -print uses_available_letters?(input, letters_in_hand) From a4463ea35536388b2923451ecb5e3681c29f8471 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Wed, 15 Aug 2018 14:34:27 -0700 Subject: [PATCH 06/16] wave 3 tests passed successfully --- lib/adagrams.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 66ebd13..97a7a9c 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -58,3 +58,32 @@ def uses_available_letters? (input, letters_in_hand) end final_results.all? { |value| value == true} end + +def score_word(word) + score = 0 + group1 = %w(A E I O U L N R S T) + group2 = %w(D G) + group3 = %w(B C M P) + group4 = %w(F H V W Y) + group5 = %w(J X) + group6 = %w(Q Z) + word.upcase.each_char do |letter| + if group1.include?(letter) + score += 1 + elsif group2.include?(letter) + score += 2 + elsif group3.include?(letter) + score += 3 + elsif group4.include?(letter) + score += 4 + elsif group5.include?(letter) + score += 8 + elsif group6.include?(letter) + score += 10 + end + end + if word.length >= 7 && word.length <= 10 + score += 8 + end + return score +end From c95c0aceba3ce8bb245fbf23dc057e7d8950a220 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Wed, 15 Aug 2018 16:26:57 -0700 Subject: [PATCH 07/16] successfully passed tests for wave 4 --- lib/adagrams.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 97a7a9c..4d443b1 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -87,3 +87,36 @@ def score_word(word) end return score end + +def highest_score_from_word(words) + # create hash of words and score + data = {} + winner = "" + words.each do |word| + data[word] = score_word(word) + end + + # get max value in hash + max = data.max_by {|k, v| v}[1] + + # select key - value pair/s + ties_words = data.select{ |k, v| v == max} + + if ties_words.length == 1 + winner = ties_words[0] + elsif ties_words.length > 1 + shortest_length = 0 + ties_words.each do |word| + if word == 10 + winner = word + else + word.length > shortest_length + shortest_length = word.length + winner = word + end + end + end + winner + score = data.select{ |k, v| k == winner}.values + return {winner => score} +end From a3cb5eac145f057ba6aa5791e0102876f6a6e92a Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Thu, 16 Aug 2018 16:16:12 -0700 Subject: [PATCH 08/16] wave 5 created method to check if input is a valid word in csv file dictionary word, failing test that previously was passed in wave 4--testing merge previously passing code with current buggy code --- lib/adagrams.rb | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 4d443b1..ad936be 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,3 +1,5 @@ +require 'csv' + def draw_letters # all letters @@ -33,7 +35,7 @@ def draw_letters return ten_letters end -def uses_available_letters? (input, letters_in_hand) +def uses_available_letters?(input, letters_in_hand) result = [] final_results = [] input.each_char do |letter| @@ -88,10 +90,12 @@ def score_word(word) return score end -def highest_score_from_word(words) +def highest_score_from(words) # create hash of words and score data = {} winner = "" + # create hash of words and scores + # return key value pair, key = word, and value = score, add it to hash words.each do |word| data[word] = score_word(word) end @@ -100,23 +104,37 @@ def highest_score_from_word(words) max = data.max_by {|k, v| v}[1] # select key - value pair/s + # retutn array of words ties_words = data.select{ |k, v| v == max} - if ties_words.length == 1 + if ties_words.length == 1 # only one word in ties_words array winner = ties_words[0] - elsif ties_words.length > 1 + elsif ties_words.length > 1 # if there is more than one word shortest_length = 0 + # loop through every word that are in the ties array ties_words.each do |word| if word == 10 winner = word - else + else # identify the shortest word word.length > shortest_length shortest_length = word.length winner = word end end + end winner score = data.select{ |k, v| k == winner}.values return {winner => score} end + + +def is_in_english_dict?(input) #input is a string + CSV.open("assets/dictionary-english.csv", 'r') do |line| + if line.to_s == (input) + return true + else + return false + end + end +end From 152ffd0ac18e21d6058d9d23b3f2be2c6c810d62 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Thu, 16 Aug 2018 17:06:34 -0700 Subject: [PATCH 09/16] fixed a bug in wave 4 but there are still 3 failures --- lib/adagrams.rb | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index ad936be..b158a19 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -99,33 +99,36 @@ def highest_score_from(words) words.each do |word| data[word] = score_word(word) end - + #binding.pry # get max value in hash max = data.max_by {|k, v| v}[1] - + #binding.pry # select key - value pair/s # retutn array of words - ties_words = data.select{ |k, v| v == max} - + ties_words = data.select{ |k, v| v == max}.keys + #binding.pry if ties_words.length == 1 # only one word in ties_words array winner = ties_words[0] + #binding.pry elsif ties_words.length > 1 # if there is more than one word shortest_length = 0 # loop through every word that are in the ties array ties_words.each do |word| - if word == 10 + if word.length == 10 winner = word + #binding.pry else # identify the shortest word word.length > shortest_length shortest_length = word.length winner = word + #binding.pry end end - end - winner - score = data.select{ |k, v| k == winner}.values - return {winner => score} + score = data.select{ |k, v| k == winner}.values[0] + #binding.pry + return {:word => winner, :score => score} + #binding.pry end From e12a9d9bddd419a84033b9cde0382e6942d5c623 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Thu, 16 Aug 2018 17:07:36 -0700 Subject: [PATCH 10/16] updated specs with pry in line --- specs/adagrams_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/specs/adagrams_spec.rb b/specs/adagrams_spec.rb index ae2ccd0..be25c21 100644 --- a/specs/adagrams_spec.rb +++ b/specs/adagrams_spec.rb @@ -1,6 +1,7 @@ require 'minitest/autorun' require 'minitest/reporters' require 'minitest/skip_dsl' +require 'pry' require_relative '../lib/adagrams' From e4f29069098547bb822fa9f799b0e39841f33ec5 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Fri, 17 Aug 2018 13:58:44 -0700 Subject: [PATCH 11/16] fixed wave 4, tests pass now --- lib/adagrams.rb | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index b158a19..0fa6d62 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -1,4 +1,5 @@ require 'csv' +require 'pry' def draw_letters @@ -27,7 +28,6 @@ def draw_letters # if not is not in indices used, add it there indices_used << index end - ten_letters = indices_used.map do |index| letters[index] end @@ -58,7 +58,8 @@ def uses_available_letters?(input, letters_in_hand) final_results << false end end - final_results.all? { |value| value == true} + # returns true if all values in results are true + return final_results.all? { |value| value == true} end def score_word(word) @@ -99,36 +100,27 @@ def highest_score_from(words) words.each do |word| data[word] = score_word(word) end - #binding.pry # get max value in hash max = data.max_by {|k, v| v}[1] - #binding.pry # select key - value pair/s - # retutn array of words + # returns array of words ties_words = data.select{ |k, v| v == max}.keys - #binding.pry - if ties_words.length == 1 # only one word in ties_words array + if ties_words.length == 1 # no ties winner = ties_words[0] - #binding.pry - elsif ties_words.length > 1 # if there is more than one word - shortest_length = 0 - # loop through every word that are in the ties array + else # ties ties_words.each do |word| - if word.length == 10 - winner = word - #binding.pry - else # identify the shortest word - word.length > shortest_length - shortest_length = word.length + if word.length == 10 # select word length 10 and return it as a winner winner = word - #binding.pry + # finds winner in data, and return it's value for the score + score = data.select{ |k, v| k == winner}.values[0] + return {:word => winner, :score => score} + else # select shortest word and return it as a winner + winner = ties_words.sort_by {|x| x.length}.first end end end score = data.select{ |k, v| k == winner}.values[0] - #binding.pry return {:word => winner, :score => score} - #binding.pry end From 21dddac465d22f9be797af0e6aa5536054b53583 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Fri, 17 Aug 2018 14:49:05 -0700 Subject: [PATCH 12/16] wave 5 fixed --- specs/adagrams_spec.rb | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/specs/adagrams_spec.rb b/specs/adagrams_spec.rb index be25c21..942a048 100644 --- a/specs/adagrams_spec.rb +++ b/specs/adagrams_spec.rb @@ -149,7 +149,7 @@ expect(score_word(words.first)).must_equal 18 expect(score_word(words.last)).must_equal 18 - best_word = highest_score_from words + best_word = highest_score_from(words) expect(best_word[:word]).must_equal 'AAAAAAAAAA' expect(best_word[:score]).must_equal 18 @@ -163,10 +163,31 @@ expect(score_word(words.first)).must_equal 18 expect(score_word(words.last)).must_equal 18 - best_word = highest_score_from words + best_word = highest_score_from(words) expect(best_word[:word]).must_equal words.first expect(best_word[:score]).must_equal 18 end end + + describe 'is_in_english_dict?' do + it 'looks in the dictionary in csv file to verify input is word' do + #Assign + word = ['sdfsdfsdfsd'] + + #Act #Assert + expect(is_in_english_dict?(word)).must_equal false + end + + it 'reads the entire csv file by using the last word' do + #Assign + word = "zwitterion" + + debug = is_in_english_dict?(word) + #binding.pry + #Act #Assert + expect(is_in_english_dict?(word)).must_equal true + + end + end end From 429a315c31baac189d9bfc5fe16bf10804868935 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Fri, 17 Aug 2018 14:51:27 -0700 Subject: [PATCH 13/16] wave 5 fixed, was able to loop trough each line and access it as a string --- lib/adagrams.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 0fa6d62..1e426cd 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -125,11 +125,15 @@ def highest_score_from(words) def is_in_english_dict?(input) #input is a string - CSV.open("assets/dictionary-english.csv", 'r') do |line| - if line.to_s == (input) - return true + answer = "" + CSV.open("assets/dictionary-english.csv", 'r').each do |line| + if line[0] == input + answer = true else - return false + answer = false end end + return answer end + +is_in_english_dict?("zwitterion") From 7f7b86dbca8085b167947eecf2f035dac8926828 Mon Sep 17 00:00:00 2001 From: Kay Nelson Date: Fri, 17 Aug 2018 14:58:45 -0700 Subject: [PATCH 14/16] added 2 tests for wave 5 that are passing --- specs/adagrams_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/specs/adagrams_spec.rb b/specs/adagrams_spec.rb index 942a048..d81ae0a 100644 --- a/specs/adagrams_spec.rb +++ b/specs/adagrams_spec.rb @@ -189,5 +189,6 @@ expect(is_in_english_dict?(word)).must_equal true end + end end From 9ff15aa106afd03b19a6e314bdce86c46001fb27 Mon Sep 17 00:00:00 2001 From: Laura Martinez Date: Fri, 17 Aug 2018 16:19:20 -0700 Subject: [PATCH 15/16] Create Kay_and_Laura_adagrams.rb --- Kay_and_Laura_adagrams.rb | 137 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 Kay_and_Laura_adagrams.rb diff --git a/Kay_and_Laura_adagrams.rb b/Kay_and_Laura_adagrams.rb new file mode 100644 index 0000000..e18fe3a --- /dev/null +++ b/Kay_and_Laura_adagrams.rb @@ -0,0 +1,137 @@ +require ‘csv’ +require ‘pry’ + +def draw_letters + + # all letters + letters = %W(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 ) + # convert to upcase + letters = letters.map do |letter| + letter.upcase + end + # range + max = letters.length - 1 + min = 0 + + # index used + indices_used= [] + + # generate random index + index = Random.rand(min..max) + + # get 10 unique indices, and saved them in indices used + 10.times do + # check if index is in indices_used array , if true generate new random index + while indices_used.include?(index) + index = Random.rand(min..max) + end + # if not is not in indices used, add it there + indices_used << index + end + ten_letters = indices_used.map do |index| + letters[index] + end + + return ten_letters +end + +def uses_available_letters?(input, letters_in_hand) + result = [] + final_results = [] + input.each_char do |letter| + # check if letter exists in letters_in_han + if letters_in_hand.include?(letter) + result << true + else + # user used a letter that does not exists + result << false + end + end + final_results << result.all? { |value| value == true} + + input.each_char do |letter| + # check if letter exists in letters_in_hand + if letters_in_hand.include?(letter) + letters_in_hand.delete(letter) + else + # user used a letter that does not exists + final_results << false + end + end + # returns true if all values in results are true + return final_results.all? { |value| value == true} +end + +def score_word(word) + score = 0 + group1 = %w(A E I O U L N R S T) + group2 = %w(D G) + group3 = %w(B C M P) + group4 = %w(F H V W Y) + group5 = %w(J X) + group6 = %w(Q Z) + word.upcase.each_char do |letter| + if group1.include?(letter) + score += 1 + elsif group2.include?(letter) + score += 2 + elsif group3.include?(letter) + score += 3 + elsif group4.include?(letter) + score += 4 + elsif group5.include?(letter) + score += 8 + elsif group6.include?(letter) + score += 10 + end + end + if word.length >= 7 && word.length <= 10 + score += 8 + end + return score +end + +def highest_score_from(words) + # create hash of words and score + data = {} + winner = “” + # create hash of words and scores + # return key value pair, key = word, and value = score, add it to hash + words.each do |word| + data[word] = score_word(word) + end + # get max value in hash + max = data.max_by {|k, v| v}[1] + # select key - value pair/s + # returns array of words + ties_words = data.select{ |k, v| v == max}.keys + if ties_words.length == 1 # no ties + winner = ties_words[0] + else # ties + ties_words.each do |word| + if word.length == 10 # select word length 10 and return it as a winner + winner = word + # finds winner in data, and return it’s value for the score + score = data.select{ |k, v| k == winner}.values[0] + return {:word => winner, :score => score} + else # select shortest word and return it as a winner + winner = ties_words.sort_by {|x| x.length}.first + end + end + end + score = data.select{ |k, v| k == winner}.values[0] + return {:word => winner, :score => score} +end + + +def is_in_english_dict?(input) #input is a string + answer = “” + CSV.open(“assets/dictionary-english.csv”, ‘r’).each do |line| + if line[0] == input + answer = true + else + answer = false + end + end + return answer +end From f377795a97ad6a0a5f7a58e9bc6cdc8fe14bf81b Mon Sep 17 00:00:00 2001 From: Laura Date: Tue, 21 Aug 2018 16:06:22 -0700 Subject: [PATCH 16/16] old version --- lib/adagrams.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/adagrams.rb b/lib/adagrams.rb index 38775a2..d778e01 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -49,19 +49,12 @@ def uses_available_letters? (input, letters_in_hand) print letter # check if letter exists in letters_in_hand if letters_in_hand.include?(letter) - # if it exits, delete - letters_in_hand.delete(letter) + return true else # user used a letter that does not exists return puts "false" end end - # check if all letters in letters_in_hand were used - if letters_in_hand.empty? - return puts "true" - else - return puts "false" - end end print uses_available_letters?(input, letters_in_hand)