From ef81edc79077c51f29e60c572fda30be79aa79fe Mon Sep 17 00:00:00 2001 From: Olivia Mulholland Salazar Date: Wed, 12 Feb 2020 10:19:49 -0800 Subject: [PATCH 1/3] Added a silly example --- .DS_Store | Bin 0 -> 6148 bytes .vscode/launch.json | 14 ++++++++++++++ lib/.DS_Store | Bin 0 -> 6148 bytes lib/adagrams.rb | 29 +++++++++++++++++++++++++++++ wave-1-game.rb | 2 +- wave-2-game.rb | 2 +- 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 .DS_Store create mode 100644 .vscode/launch.json create mode 100644 lib/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c6aeb39bb9f64be359da0329aa298d8fc0c2a60b GIT binary patch literal 6148 zcmeHK%Wl&^6ur}gGD$_r0;yekgTx|Kc@Sk$A(@aaxw-#SVpnL#C72d zwxN5rflQ8(QgRr^CvF(K3(=;-C}0#=HwDDIyGafu`1zE7f5oEk6@KrhG&%JxIz^mM z9=Twh&^hhVfV|9G4;I^*V{z(JK#>@KY5d2z_yUE9cjrd^u{_EhCl`9f`Q~1PL6X*L z-`Pf?cw_S>=Ve~LResa!$Kzh=q@$$c3}1=XQzz}ay8b+l!#{P$eG&NMqspDfag;hi zC?ZWh5|!phmPyUVZPOStxkT)Js>9FF8lbgD!-dp| z1h3*YuHlNbui`eZ<_a|!&!~}|^Mh-+c=T6tTUT?1Ryi(iVf{=$e0*#Dre zV+F+eV8I328fOaS(t$!A0f0qxOG90JHVBTT(bhOqh$}Frs6a(!`iQ|49sQP$vo+2X zDmpQJ_+a{VP&kdR)Lzbk*1%swzE!r;bDn1$WB zTkYJTDYRM<(e7*5iL@fpzzyYWVQKciX*rTHT`D3>o&MGQE1*iZOpaN82p@8*XShERaqykic3S1Ph??Ztb*2F2$KOG1@ z0sz-YyJ79K1h7~FSQDo}WMCRpU{Ezj3=KN+CF^S96c}_-zZvJ`&6*R6`t8UUFBh$W zj8uRM%oSM0wzdBM1iv!>&q>@-0V?pX6wvklW#8eIvbQc?&U$TuzrwBN8*YZRQxLoz k1HBz%W9|6Si=wXB8qaIu6zFv1oet#BfayY`0{2$n7v_y6Q~&?~ literal 0 HcmV?d00001 diff --git a/lib/adagrams.rb b/lib/adagrams.rb index e69de29..ee96ca2 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -0,0 +1,29 @@ +def draw_letters + letters = %w[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] + quantities = [9, 2, 2, 4, 12, 2, 3, 2, 9, 1, 1, 4, 2, 6, 8, 2, 1, 6, 4, 6, 4, 2, 2, 1, 2, 1] + + all_letters = [] + letters.length.times do |i| + all_letters << (letters[i] * quantities[i]).chars + end + all_letters.flatten! + + hand = all_letters.shuffle.take(10) + return hand +end + + +def uses_available_letters?(input, letter_in_hand) + input = input.chars + input.each_with_index { |av, ai| + letter_in_hand.each_with_index { |bv, bi| + if (av == bv) + input[ai] = nil + letter_in_hand.delete_at(bi) + end + } + } + input.reject!{ |item| item.nil? } + return input.empty? +end + diff --git a/wave-1-game.rb b/wave-1-game.rb index 159f620..5305a57 100644 --- a/wave-1-game.rb +++ b/wave-1-game.rb @@ -15,4 +15,4 @@ def run_game display_drawn_letters(draw_letters) end -run_game +run_game \ No newline at end of file diff --git a/wave-2-game.rb b/wave-2-game.rb index 18745b7..bade2c4 100644 --- a/wave-2-game.rb +++ b/wave-2-game.rb @@ -62,4 +62,4 @@ def run_game display_goodbye_message end -run_game +run_game \ No newline at end of file From 5ac742894dd4cfa4326c5b61f580b8c29c49eb38 Mon Sep 17 00:00:00 2001 From: Olivia Mulholland Salazar Date: Wed, 12 Feb 2020 10:30:39 -0800 Subject: [PATCH 2/3] Add .gitignore file, ignore secret-secrets.txt --- .gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 From 91ef45c467e819a3fb8d95cfb049fa7097df0565 Mon Sep 17 00:00:00 2001 From: Olivia Mulholland Salazar Date: Wed, 19 Feb 2020 17:04:32 -0800 Subject: [PATCH 3/3] updating commit --- .gitignore | 0 lib/adagrams.rb | 88 +++++++++++++++++++++++++++++++++++++++++-- test/adagrams_test.rb | 2 +- 3 files changed, 86 insertions(+), 4 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/lib/adagrams.rb b/lib/adagrams.rb index ee96ca2..03f1ad4 100644 --- a/lib/adagrams.rb +++ b/lib/adagrams.rb @@ -14,12 +14,13 @@ def draw_letters def uses_available_letters?(input, letter_in_hand) - input = input.chars + input = input.chars + hand = letter_in_hand.clone input.each_with_index { |av, ai| - letter_in_hand.each_with_index { |bv, bi| + hand.each_with_index { |bv, bi| if (av == bv) input[ai] = nil - letter_in_hand.delete_at(bi) + hand.delete_at(bi) end } } @@ -27,3 +28,84 @@ def uses_available_letters?(input, letter_in_hand) return input.empty? end +def score_word(word) + score_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, + } + total = 0 + word.upcase.each_char { |letter| + total += score_values[letter] + } + if word.length > 6 + total += 8 + end + + return total +end + + +def highest_score_from(words) + print 'words->', words + game_scores = words.map do |word| + game_scores = {:word => word, :score => score_word(word)} + end + + max_score = 0 + best_word = nil + shortest = [] + tied_words = [] + + game_scores.each do |banana| + current_score = banana[:score] + if current_score > max_score + max_score = current_score + tied_words = [banana] + elsif current_score == max_score + tied_words << banana + end + end + + return tied_words[0] if tied_words.length == 1 + + tied_words.each do |i| + if i[:word].length == 10 + return i + end + end + + tied_words.each do |i| + shortest << i[:word].length + end + + tied_words.each do |i| + if shortest.min == i[:word].length + return i + end + end + +end \ No newline at end of file diff --git a/test/adagrams_test.rb b/test/adagrams_test.rb index 90ec44d..3aa9090 100644 --- a/test/adagrams_test.rb +++ b/test/adagrams_test.rb @@ -116,7 +116,7 @@ expect(score_word(words.first)).must_equal 12 expect(score_word(words.last)).must_equal 12 - best_word = highest_score_from words + best_word = highest_score_from(words) expect(best_word[:word]).must_equal 'WWW' expect(best_word[:score]).must_equal 12