Scrabble Data Specification

<board>
 = 
((<cell> ...15) ...15)
<cell>
 = 
(<letter> bl)
(<letter> nb)
------
<placement>
 = 
(place-tile <coord> <coord> <letter>)
(place-blank <coord> <coord> <letter>)
<boolean>
 = 
true
false
<wl>
 = 
won
lost
<coord>
 = 
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tile>
 = 
<letter>
_
<letter>
 = 
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
<string>
 = 
a sequence of keyboard characters, with the exception of ", surrounded by "s
<number>
 = 
a sequence of digits (0-9)
Things in the purple fixed width font are literal characters that pass across the network, things in green italics with <> around them refer to other parts of the specification, and things in orange are meta-notation describing parts of the specification. Ellipses stand for repeated elements and ellipses with numbers mean to repeat that number of times (exactly).

Multiple lines in the second table correspond to different alternatives. For example, a <tile> can be either a <letter> or the underscore character. A cell with a bl corresponds to a blank, a cell with a nb corresponds to a non-blank, and a cell with a hyphen corresponds to an unplayed square. The string passed during registration should be the players name.

Whitespace The parenthesis characters and strings are considered self-delimiting, meaning they do not require surrounding whitespace to separate them from other elements in a message. All other items in a message must be separated by at least one space (or tab or newline) from the surrounding text. For example, this: (anb) is not a <cell>, since there are no spaces separating the a from the nb. On the other hand, both (  a nb  ) and (a     nb) are legal.

Robby Findler