Author Topic: Scrabaid suggests moves for a turn given a Scrabble board and letters available  (Read 1551 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4281
  • OS:
  • Mac OS X 10.6 Mac OS X 10.6
  • Browser:
  • Firefox 20.0 Firefox 20.0
Scrabaid suggests moves for a player given a Scrabble board and letters available.

https://sourceforge.net/projects/scrabaid/files/latest/download

Quote
Welcome

Welcome to the home page of Scrabaid, a utility written in Java to help you kick some serious butt in Scrabble games. All you have to do is to fill in the current board and the letters available on your tray, and voila, Scrabaid will search its wordlists and give you virtually every possible move available to you.



Scrabaid is open source software, distributed under the GNU General Public Licence. Developers are most welcome to join the project.

Background... Functionality Scrabaid is a lightweight Java program which indexes a wordlist for fast pattern searching, and uses these indexes to suggest words to the user. Given any scrabble board, and tray of available letters, Scrabaid will return you almost every possible combination of letters, ordered by score, to enable you to kick some serious butt in Scrabble games. Pattern Searching The searching/indexing algorithm used in Scrabaid is essentially a hash table. The size of the hash tables vary depending on the maximum length of words that Scrabaid can suggest. Personally, I use Scrabaid to search words of up to 13 characters in length, and this requires about 363 MB of disk space. If indexes for words of up to 10 characters in length are used then only 90 MB of disk space is required.
 In practise, I've found this hash-table method to provide a good way of searching on patterns, with the number of mismatching words typically small (mostly less than 10 for words with less than 8 characters). Scrabaid can suggest solutions given a board within about 5 seconds generally. More time is taken if you have a blank or two in your tray (as there are a far greater number matches). Current status Scrabaid currently returns virtually all combinations of words available given a board configuration. The only known limitation is:
  • Scrabaid requires that blank squares, once laid on the board, be assigned a letter.
How good is Scrabaid? Scrabaid is currently only an aid. It does not decide on which moves you should make - you have that decision. One simple strategy would be to always pick the highest scoring move available. However, this is not necessarily the best strategy - in many circumstances picking the highest scoring move will "open up" opportunities for your opponenet to lay tiles across 3 word multiplier and 3 letter multiplier tiles.
Building some level of intelligence, possibly using probabilistic move look-ahead and/or heuristics would be the next step in the development of Scrabaid.
In the meantime, I'm happy to report that against ordinary human beings, Scrabaid can help you score 450 points or more, whilst the human opponent will score somewhere around 200 to 250. When playing two Scrabaided players against each other, scores are in the high 300s. A typical game is shown in the screenshots section.
Scrabaid has also challenged the Networdz computer, with 100% intelligence, and won half the time. Details of the challenge can be found on the challenge page. Why write Scrabaid? I wrote Scrabaid for two reasons:
  • I do not have an especially large vocabulary, and thus my performance at the game against workmates was not up to the level that I had desired (I only won about 50% of the games). Now with Scrabaid, I consistently thrash my workmates, sometimes more than doubling their scores. On the downside, fewer and fewer people actually want to play against me now.
  • I'd booked myself in for a Java certification exam, and 4 days before the exam I realised that I knew no AWT. Instead of writing some crappy hello world programs, I decided to write Scrabaid to teach myself AWT and prepare for the exam.

Requirements
Scrabaid is written in Java and uses AWT. You'll require a Java Runtime Environment, v1.2 or later to run Scrabaid.
You may also choose to use a different word list to that supplied with Scrabaid. A number are available; simply follow the Installation instructions with your desired wordlist, and hey-presto, you could be playing Scrabble in Spanish.

http://scrabaid.sourceforge.net/index.html

https://sourceforge.net/projects/scrabaid/

« Last Edit: March 27, 2014, 10:31:02 AM by Software Santa »