diff --git a/xwords4/linux/README.MOVELIST_BRANCH b/xwords4/linux/README.MOVELIST_BRANCH new file mode 100644 index 000000000..5f58299a3 --- /dev/null +++ b/xwords4/linux/README.MOVELIST_BRANCH @@ -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.