I can probably describe the idea a little more clearly and to a more general 
audience:

1) I first take a list of words i've studied.  All the 2s, and 3s.  The first 
7000 words in John's march2006 TWL playability list, plus all 4 and 5 JQZXs, 
and all the Q's without Us.  That's pretty much what i've studied.  So I use 
that as my working set of words to form (hopefully) good scrabble plays.
2) Imagine making an index card for every word in the dictionary that you don't 
know.  Write a 0 on each card.  That's it's current value to you.
3) Start playing random Scrabble games in Quackle.  For each move, hit 
"Generate choices".  You see 15 moves sorted by the static evaluator, each with 
a "Valuation" which is based on the score of the play and rack leave.  They are 
not perfect moves in perfect order, but the other players are too slow for this 
idea to work in a reasonable amount of time.  I use these values as a rough 
guide of how good the various moves at this position are.
4) Keep committing the top move in the list.  Every time the top move used a 
word you didn't know (or maybe several), note the difference in value between 
it and the move you could have played, given your word knowledge.  Maybe it 
played EXTRA(UTERINE), and you didn't know that word, so the best you could 
have done was TAX somewhere.  Say the "Valuation" in quackle for EXTRAUTERINE 
was 50 and TAX was 30.  You take your EXTRAUTERINE card and add 20 points to 
it's value.  It'll probably never play EXTRAUTERINE again in 2 million games, 
but maybe you didn't know SORDINE.  If you do this process for millions of 
games, eventually the SORDINE card will have a high value, and EXTRAUTERINE 
will probably still have just 20 points.  So you're better off spending a bit 
of time learning SORDINE.

The python scripts do this for millions of games and hand you back a sorted 
list of words, each with their total value.  Except it gives you alphagram 
racks to study.  I keep 1 score for SORDINE and it's 4 anagrams on the same 
card... because when i learn it, I'll learn the other 4 at the same time.

Also, my code only works in windows... sorry.

From: Eugene Deon <[email protected]>
To: [email protected]
Cc: [email protected]
Sent: Thursday, December 18, 2008 1:32:35 PM
Subject: [quackle] A Modified version of "playability" lists


I modified Quackle and wrote some python scripts to compute estimated equity 
for each rack of letters i currently don't know (In this email i say "rack" 
when i mean some non-empty set of letters, not necessarily of length 7).  It 
works as follows:

1) take a list of racks i currently know
2) have Quackle's speedy player play itself for 1 million or more games
3) each time there is a best move that forms at least one word i don't 
currently know, find the first move that formed words all of which i do know.
4) accumulate the difference in equity (between the best move and the one i 
could have played) to all the words i didn't know that helped form that best 
move
5) after 1 million games, sort the list of all racks i don't know by total 
accumulated equity: it's likely i will get the most reward/time by studying the 
top racks first.

I believe this is different than John O'laughlin's playability lists in several 
ways: he didn't take into account your current rack knowledge.  Every word in 
his list fights to be better than every other word in the dictionary, not just 
the ones you already know.  And he sorts words, not racks, which had led me not 
to add DEINORS to my cardbox yet, even though it's pretty important (i always 
learn all the words in a rack, so i prefer to have a list of important racks to 
study, not words).  Also, I think he only looked at the main word formed in 
each play, and not all words, which would underestimate the value of a words 
hookability to some extent.

Anyway, it's not a user-friendly implementation by any means, just a hacked 
quackle build that spits out large .txt files of moves and equity, and a python 
script to parse those files.  If you are brave and interested, you can compute 
your own lists.  The files you need are here: http://www.eugenede 
on.com/collect1. zip

It's probably not that different from John's lists if you were to combine his 
values for each word into a list of rack values, but it does look at all words 
formed in a play, and it does consider your current knowledge (provided you can 
put most of the words you know into a file).  The eugPlayability. exe will 
crash once in a while (once in every 500,000 games or so - dunno why), but can 
just ignore it, it should keep going.

I also wanted to do a similar analysis to determine in which order to study 
hooks, but never got to that yet.  My Scrabble addiction has gotten way out of 
hand lately, so I'm gonna back off for a while,

enjoy!
Eugene 

Reply via email to