From b706b7cbcb8d365a78803627fda5177f6f7b5a3e Mon Sep 17 00:00:00 2001 From: Genie Date: Tue, 21 Sep 2021 10:36:49 -0400 Subject: [PATCH 1/3] add function that passes Wave 1 tests --- adagrams/game.py | 63 ++++++++++++++++++++++++++++++++++++++++++- tests/test_wave_01.py | 3 ++- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/adagrams/game.py b/adagrams/game.py index 5fb37b11..cd6154a4 100644 --- a/adagrams/game.py +++ b/adagrams/game.py @@ -1,5 +1,66 @@ +import random + def draw_letters(): - pass + + letter_list = ['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 = letter_list.copy() + chosen_letters = [] + for i in range(10): + letter = random.choice(letters) + letters.remove(letter) + chosen_letters.append(letter) + return chosen_letters + + # letters = { + # 'A': 9, + # 'B': 2, + # 'C': 2, + # 'D': 4, + # 'E': 12, + # 'F': 2, + # 'G': 3, + # 'H': 2, + # 'I': 9, + # 'J': 1, + # 'K': 1, + # 'L': 4, + # 'M': 2, + # 'N': 6, + # 'O': 8, + # 'P': 2, + # 'Q': 1, + # 'R': 6, + # 'S': 4, + # 'T': 6, + # 'U': 4, + # 'V': 2, + # 'W': 2, + # 'X': 1, + # 'Y': 2, + # 'Z': 1 + # } + # dict_letters = letters.copy() + # chosen_letters = [] + # for i in range(9): + # letter = random.choice(dict_letters.keys()) + # chosen_letters.append(letter) + # dict_letters["letter"] += -1 + # return chosen_letters + + + + + + + # loop 10 times + # for i in range 10 + # the letter that it chooses, take it out of the list and def uses_available_letters(word, letter_bank): pass diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index 25ef73e7..5b8809b7 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -64,4 +64,5 @@ def test_letter_not_selected_too_many_times(): # Assert for letter in letters: - assert letter_freq[letter] <= LETTER_POOL[letter] + if letter_freq[letter] > LETTER_POOL[letter]: + assert letter_freq[letter] <= LETTER_POOL[letter] From 1d059aa33df0270ac474c8f5597af0d2769b29a0 Mon Sep 17 00:00:00 2001 From: Genie Date: Fri, 24 Sep 2021 12:31:16 -0400 Subject: [PATCH 2/3] add functions for first 3 waves --- adagrams/game.py | 76 ++++++++++++++++++------------------------------ 1 file changed, 29 insertions(+), 47 deletions(-) diff --git a/adagrams/game.py b/adagrams/game.py index cd6154a4..ecc1db1d 100644 --- a/adagrams/game.py +++ b/adagrams/game.py @@ -17,56 +17,38 @@ def draw_letters(): chosen_letters.append(letter) return chosen_letters - # letters = { - # 'A': 9, - # 'B': 2, - # 'C': 2, - # 'D': 4, - # 'E': 12, - # 'F': 2, - # 'G': 3, - # 'H': 2, - # 'I': 9, - # 'J': 1, - # 'K': 1, - # 'L': 4, - # 'M': 2, - # 'N': 6, - # 'O': 8, - # 'P': 2, - # 'Q': 1, - # 'R': 6, - # 'S': 4, - # 'T': 6, - # 'U': 4, - # 'V': 2, - # 'W': 2, - # 'X': 1, - # 'Y': 2, - # 'Z': 1 - # } - # dict_letters = letters.copy() - # chosen_letters = [] - # for i in range(9): - # letter = random.choice(dict_letters.keys()) - # chosen_letters.append(letter) - # dict_letters["letter"] += -1 - # return chosen_letters - - +def uses_available_letters(word, letter_bank): + letters_used = letter_bank.copy() + for letter in word: + if letter in letters_used: + letters_used.remove(letter) + else: + return False + break + return True - +def score_word(word): - # loop 10 times - # for i in range 10 - # the letter that it chooses, take it out of the list and + letter_points = { + 1:['A', 'E', 'I','O', 'U', 'L', 'N', 'R', 'S', 'T' ], + 2:['D', 'G' ], + 3:['B', 'C', 'M', 'P' ], + 4:['F', 'H', 'V', 'W', 'Y' ], + 5:['K'], + 8:['J', 'X'], + 10:['Q', 'Z'] + } + sum = 0 + word_length = len(word) + cap_word = word.upper() + for letter in cap_word: + for score in letter_points: + if letter in letter_points[score]: + sum += score + if word_length >= 7: + sum += 8 + return sum -def uses_available_letters(word, letter_bank): - pass -def score_word(word): - pass -def get_highest_word_score(word_list): - pass \ No newline at end of file From 3411d93bbbf9fb445bacb5c317203057bd734e8e Mon Sep 17 00:00:00 2001 From: Adah Hailemariam Date: Fri, 24 Sep 2021 12:59:34 -0700 Subject: [PATCH 3/3] completed --- adagrams/game.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/adagrams/game.py b/adagrams/game.py index ecc1db1d..94c217ec 100644 --- a/adagrams/game.py +++ b/adagrams/game.py @@ -50,5 +50,23 @@ def score_word(word): sum += 8 return sum - - +def get_highest_word_score(word_list): + words_and_scores = [] + for word in word_list: + score = score_word(word) + words_and_scores.append(tuple([word, score])) + num=(0, 0) + for item in words_and_scores: + if item[1]>num[1]: + num=item + elif item[1]==num[1]: + if len(num[0])==10: + break + elif len(item[0])==len(num[0]): + break + elif len(item[0])==10: + num=item + break + elif len(item[0])