Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions PLAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## Access needs
- Ying: I'm still working on time management skills so would require planning in advance for meeting up to work on the project outside of core hours.
- Liqing: I'm pretty flexible with the time arrangement with the partner. Fully understanding of the project problem is requried for me before we start coworking though. Set up 1 - 2 hours for each coworking session also helps that we don't over spend time on one task/wave.


## Learning style
- Ying: I learn best when doing it myself while having full independence over my own learning process. In general, I learn better when reading, researching and doing than watching videos or attending classes.
- Liqing: I like reading documentation, googling, taking note to enhance my understanding. We can share resources together too after each session.


## How you prefer to receive feedback
- Ying: I prefer to receive written feedback in a direct and concise manner (numbered lists or bullet points preferred) with a specific agreed upon deadline to fix any issues, and be given the time inbetween to work on it on my own. Agree with Liqing re feedback at the end of the project (maybe a retrospective together on Friday or this weekend?)
- Liqing: after each pair programming, I would like to receive any verbal feedback on the collaboration of that particular day and at the end of the project as an overall feedback to improve mine and both.


## One team communication skill you want to improve on with this experience
- Ying: I need to work on patience when communicating which can at times come off as dismissive to others.
- Liqing: I want to improve on my communication skills while pair programming in a professional way, make the whole pair programming benefitial for both.


## Plan
- 1st session: 03/28 Mon 3-4pm
- Goal: complete wave 1 (30 minutes/30 minutes)
- 2nd session: 03/29 Tue 2-3pm
- Goal: complete wave 2
- 3rd session: 03/30 Wed 3-4pm
- Goal: complete wave 3
- 4th session: 03/31 Thu 1-230pm
- Goal: complete wave 4 and manually test
- If we finish earlier this day, we can have a feedback session
114 changes: 110 additions & 4 deletions adagrams/game.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,117 @@
from collections import Counter
import random
from collections import Counter

LETTER_POOL = {
'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
}

POINT_SYSTEM = {
'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
}



# |Letter | Value|
# |:----------------------------:|:----:|
# |A, E, I, O, U, L, N, R, S, T | 1 |
# |D, G | 2 |
# |B, C, M, P | 3 |
# |F, H, V, W, Y | 4 |
# |K | 5 |
# |J, X | 8 |
# |Q, Z | 10 |

def draw_letters():
pass
# copy a dictionary so that we don't change the data, it's constant
letter_pool_copy = LETTER_POOL.copy()
letters_drawn = []
letter_options = list(letter_pool_copy)
while len(letters_drawn) < 10:
letter_drawn = random.choice(letter_options)
if letter_pool_copy[letter_drawn] >= 1:
letters_drawn.append(letter_drawn)
letter_pool_copy[letter_drawn] -= 1
return letters_drawn
Comment on lines +80 to +85
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍



def uses_available_letters(word, letter_bank):
pass
upper_word = word.upper()
char_counts = Counter(letter_bank)
for char in upper_word:
if not char_counts[char]:
return False
char_counts[char] -= 1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat solution! How would you solve this if you didn't have the Counter package?

return True


def score_word(word):
pass
points = 0
for char in word:
points += POINT_SYSTEM[char.upper()]
if len(word) >= 7 and len(word) <= 10:
points += 8
return points
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯



def get_highest_word_score(word_list):
pass
max_score = 0
max_word = None
for word in word_list:
if score_word(word) == max_score and len(max_word) != 10:
if len(word) == 10 or len(word) < len(max_word):
max_word = word
Comment on lines +111 to +113
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic solution!

elif score_word(word) > max_score:
max_score = score_word(word)
max_word = word
return (max_word, max_score)