Skip to content

Commit 0ac88a7

Browse files
authored
Merge pull request #848 from rhyspowell/PCC02
Pcc02
2 parents e30ba8c + 5b723e2 commit 0ac88a7

File tree

4 files changed

+236054
-0
lines changed

4 files changed

+236054
-0
lines changed

02/rhys/data.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from collections import namedtuple
2+
3+
Letter = namedtuple('Letter', 'name amount value')
4+
5+
def _load_words():
6+
with open('dictionary.txt') as f:
7+
return set([word.strip().lower() for word in f.read().split()])
8+
9+
DICTIONARY = _load_words()
10+
assert len(DICTIONARY) == 234371
11+
12+
13+
# generated with https://github.com/pybites/blog_code/blob/master/BeautifulSoup/scrabble_distribution.py
14+
distribution = [Letter(name='A', amount='9', value='1'), Letter(name='B', amount='2', value='3'), Letter(name='C', amount='2', value='3'), Letter(name='D', amount='4', value='2'), Letter(name='E', amount='12', value='1'), Letter(name='F', amount='2', value='4'), Letter(name='G', amount='3', value='2'), Letter(name='H', amount='2', value='4'), Letter(name='I', amount='9', value='1'), Letter(name='J', amount='1', value='8'), Letter(name='K', amount='1', value='5'), Letter(name='L', amount='4', value='1'), Letter(name='M', amount='2', value='3'), Letter(name='N', amount='6', value='1'), Letter(name='O', amount='8', value='1'), Letter(name='P', amount='2', value='3'), Letter(name='Q', amount='1', value='10'), Letter(name='R', amount='6', value='1'), Letter(name='S', amount='4', value='1'), Letter(name='T', amount='6', value='1'), Letter(name='U', amount='4', value='1'), Letter(name='V', amount='2', value='4'), Letter(name='W', amount='2', value='4'), Letter(name='X', amount='1', value='8'), Letter(name='Y', amount='2', value='4'), Letter(name='Z', amount='1', value='10')]
15+
16+
POUCH = list(''.join(
17+
list(letter.name * int(letter.amount)
18+
for letter in distribution))
19+
)
20+
assert len(POUCH) == 98 # no wildcards in this simple game
21+
22+
23+
LETTER_SCORES = dict(zip(
24+
[letter.name for letter in distribution],
25+
[int(letter.value) for letter in distribution]
26+
))
27+
28+
assert LETTER_SCORES['A'] == 1
29+
assert LETTER_SCORES['Q'] == 10
30+
assert sum(LETTER_SCORES.values()) == 87

0 commit comments

Comments
 (0)