add README so I don't forget how this branch is special

This commit is contained in:
Eric House 2012-05-02 19:41:23 -07:00
parent 513073a32c
commit f68fdab532

View file

@ -0,0 +1,97 @@
*** Note on how the runs-and-waits-to-be-fed-racks feature of this ***
*** branch works ***
You start the app in one terminal/process and feed it data from
another. Feed it boards via one named pipe and racks (palettes) via
another. Feeding it a board changes its configuration and effects
subsequent racks. Feeding it a rack causes it to print out all the
moves possible using that rack and the most recent board you fed it.
When you first start it, it has an empty board (unless you provide one
via the --board param). You can feed it racks at that point if you
want.
So, some examples:
1) Make a couple of pipes
# mkfifo /tmp/board_pipe
# mkfifo /tmp/rack_pipe
Start it up (in one terminal), giving it a dictionary and the two
pipes
# ./obj_linux_rel/xwords --board-pipe /tmp/board_pipe --rack-pipe /tmp/rack_pipe --game-dict dict.xwd
If you want to be able to tell when per-rack output begins and ends,
e.g. to have an automated process more readily detect the end of the
(possibly empty) output for a single rack, use the --rack-header and
--rack-footer params, e.g. --rack-header '---HEADER---' --rack-footer
'---FOOTER---'
It will keep running now, so switch to another terminal. Remember
that it has an empty board
# echo DESTROY > /tmp/rack_pipe
You'll see this appear on the original terminal
---HEADER---
0080:HhD:STROYED:STROYED
0080:HhA:STROYED:STROYED
0080:HfD:DESTROY:DESTROY
0080:FhA:DESTROY:DESTROY
0076:HfD:STROYED:STROYED
0076:HdD:DESTROY:DESTROY
0076:FhA:STROYED:STROYED
0076:DhA:DESTROY:DESTROY
0074:HhD:DESTROY:DESTROY
0074:HhA:DESTROY:DESTROY
skipping remaining 1172 moves
---FOOTER---
There are four :-delimited columns. The first is the score. The
second where the first tile is placed and direction: column, row, and
D for down or A for across. Then the tiles placed. And finally the
word formed -- which may include tiles that were already on the board.
The latter two will be different after we load a board with contents.
Here's one:
# cat board.txt
...............
...............
...............
...............
...............
........T......
.......DOWN....
.......ON......
........G......
........U......
.....TAKE......
...............
...............
...............
...............
# cat board.txt > /tmp/board_pipe
then
# echo DESTROY > /tmp/rack_pipe
And from the other terminal:
---HEADER---
0090:EiD:DESTROY:DESTROY
0089:IlA:DESTROY:DESTROY
0088:LaD:DESTROY:DESTROY
0086:LcD:STROYED:STROYED
0084:IlA:STROYED:STROYED
0083:LgD:STROYED:STROYED
0083:AlA:DESTROY:DESTROY
0074:KaD:DRYSTOE:DRYSTONE
0071:LeD:DESTROY:DESTROY
0048:HlD:YTES:KYTES
skipping remaining 1051 moves
---FOOTER---
Note that with the line 0074:KaD:DRYSTOE:DRYSTONE the word formed and
tiles used are different: 'N' is used off the board.