If you place the word ELEVEN on a Scrabble board so that the second E hits a Triple Letter Score it will be worth exactly 11 points.
My Scrabble enthusiast mother, on her 70th birthday, said SEVENTY was worth 13. Being a Bingo, it's actually 63. If you triple the V or Y you get closer: 71. (This isn't actually possible because the way a Scrabble board is set up, in order to hit one TWS you have to hit the other.) You can't score 70 with SEVENTY.
Which number words can be worth their value when laid down on an actual Scrabble board?
For this exercise, don't worry about how you might score the word in an actual Scrabble game. Also, don't use blank tiles.
Refer to the tile distribution and scores
And also, remember to make sure your word will fit on an actual Scrabble Board
clc,clearvars
Qty={'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};
pt1={'A', 'E', 'I', 'O', 'U', 'L', 'N', 'S', 'T', 'R'};
pt2={'D', 'G'};
pt3={'B', 'C', 'M', 'P'};
pt4={'F', 'H', 'V', 'W', 'Y'};
pt5={'K'};
pt8= {'J', 'X'};
pt10={'Q', 'Z'};
pts={pt1;pt2;pt3;pt4;pt5;{};{};pt8;{};pt10};
for i=1:10
for j=1:length(pts{i})
n=pts{i}{j}-'A'+1;
letters(n,:)=[i,Qty{n,2}];
end
end
value=1; qty=2; % for second subscript into letters matrix
board{1}='T..d...T...d..T';
board{2}='.D...t...t...D.'; % upper case for word
board{3}='..D...d.d...D..'; % lower case for letter
board{4}='d..D...d...D..d';
board{5}='....D.....D....';
board{6}='.t...t...t...t.';
board{7}='..d...d.d...d..';
board{8}='T..d...D...d..T';
for n=3:120
w=num2words(n);
w=erase(w,' and ');
w=erase(w,'-');
w=erase(w,' ');
[ct, lt]=groupcounts(w'-96);
m=min(ct,letters(lt,2));
if isequal(ct,m)
for row=1:8
for col=1:16-length(w)
tot=0; wordmult='';
for psn=1:length(w)
v=letters(w(psn)-96,value);
bd=board{row}(col+psn-1);
if bd==upper(bd) && bd~='.'
wordmult=[wordmult bd];
elseif bd==lower(bd) && bd~='.'
if bd=='d'
v=2*v;
else
v=3*v;
end
end
tot=tot+v;
end
if length(wordmult)>0
if wordmult(1)=='D'
tot=tot*2;
else
tot=tot*3;
end
end
if length(w)==7
% tot=tot+50;
end
if tot==n
fprintf('%15s %5d %5d\n',w,row,col);
end
end
end
end
end
Note the bonus for exactly 7 letters is commented out. Words of more than 7 letters are allowed. Hyphens are not used.
In the table below, words are written horizontally on the board and start at the given row and column. Only the top half and the middle row of the board are used, as symmetry allows us to ignore the bottom half.
starting
Number word row col
eleven 2 4
eleven 2 8
eleven 3 5
eleven 3 7
eleven 6 4
eleven 6 8
eleven 7 2
eleven 7 3
eleven 7 5
eleven 7 7
eleven 7 8
eleven 7 9
thirteen 3 4
thirteen 3 5
thirteen 7 1
thirteen 7 4
thirteen 7 5
fourteen 7 2
fourteen 7 6
fifteen 2 3
fifteen 2 7
fifteen 3 4
fifteen 3 6
fifteen 6 3
fifteen 6 7
fifteen 7 2
fifteen 7 4
fifteen 7 6
fifteen 7 8
sixteen 2 3
sixteen 2 7
sixteen 3 4
sixteen 3 6
sixteen 6 3
sixteen 6 7
sixteen 7 2
sixteen 7 4
sixteen 7 6
sixteen 7 8
sixteen 7 9
eighteen 2 4
eighteen 6 4
eighteen 6 8
eighteen 7 6
twenty 7 2
twenty 7 8
twentyone 6 2
twentyone 6 6
twentyone 7 6
twentytwo 2 4
twentytwo 6 4
twentythree 7 1
twentythree 7 5
twentysix 2 3
twentysix 2 4
twentysix 6 3
twentysix 6 4
twentysix 6 7
thirtyone 2 5
thirtyone 6 1
thirtyone 6 5
fortytwo 3 1
fortytwo 4 2
fortytwo 4 4
fortytwo 8 4
fortytwo 8 6
fortytwo 8 8
fortyfour 4 3
fortyfour 4 4
fortyfour 8 7
fortysix 2 1
fortysix 2 7
fortysix 2 8
fortysix 3 6
fortyeight 2 1
fortyeight 2 5
fortyeight 4 4
fiftysix 4 4
fiftysix 4 6
fiftysix 8 2
fiftysix 8 4
fiftysix 8 8
fiftyeight 4 1
sixtyfour 2 2
sixtyfour 2 6
sixtyeight 2 6
seventytwo 1 4
seventyfive 1 4
For example:
twenty 7 2
1 1
4 * 2 = 8
1 1
1 1
1 1
4 * 2 = 8
----
20
Only one number, 66, was rejected solely for not having enough of the required letters available. It would have been
sixtysix 2 2
sixtysix 4 6
sixtysix 8 2
sixtysix 8 5
but was caught by the code
[ct, lt]=groupcounts(w'-96);
m=min(ct,letters(lt,2));
if isequal(ct,m)
...
|
Posted by Charlie
on 2022-09-09 11:42:36 |