[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnubg] search documentation about external inteface
From: |
LeeRoy |
Subject: |
Re: [Bug-gnubg] search documentation about external inteface |
Date: |
Mon, 18 Feb 2008 23:27:45 +0100 |
I use Linux.
"gnubg-cli.exe" is the same think that "gnubg -t" command, isn't it?
When I write "gnubg -v", I see "External commands supported." but
nothing link "external localhost:11111". It's the same think when I
just start with "gnubg -t".
Then I tryed to create an external player, but i don't know what is
"<filename>" in the command:
set player <player> external <filename>
2008/2/14, Ingo Macherius <address@hidden>:
>
>
> LeeRoy,
>
> 1) to start the external interface, you need to run gnubg-cli.exe and start
> the socket listener, like so:
>
> ------ snip ----
> bash-3.2$ ./gnubg-cli.exe
> GNU Backgammon 0.16-mingw
> Copyright 1999, 2000, 2001, 2002, 2003, 2004 by Gary Wong.
> GNU Backgammon is free software, covered by the GNU General Public License
> version 3 or later, and you are welcome to change it and/or distribute
> copies of
> it
> under certain conditions. Type "show copying" to see the conditions.
> There is absolutely no warranty for GNU Backgammon. Type "show warranty"
> for
> details.
>
> Python supported.
> External players supported.
> XML match equity files supported.
> External commands supported.
> Windows sound system supported.
> SSE supported and available.
> (No game) external localhost:11111
> Waiting for a connection from localhost:11111...
>
> Accepted connection from 127.0.0.1.
>
> ------ snip ----
>
> 2) Next step is use telnet (or your client application) to connect to that
> socket
>
> --- snip ----
>
> bash-3.2$ telnet localhost 11111
>
> Trying 127.0.0.1...
>
> Connected to RAKETE.
>
> Escape character is '^]'.
>
> --- snip ----
>
> 3) Commands
>
> There are 3 commands you can send from telnet now
>
> 3.1) EMPTY command
>
> If you send an empty line to the socket, it resets the gnubg settings used
> for evaluation
>
> The defaults are (see 3.3 how to change)
>
> ec.nPlies = 0;
>
> ec.rNoise = 0;
>
> ec.fDeterministic = 1;
>
> ec.fCubeful = 0;
>
> ec.nReduced = 0;
>
> ec.fUsePrune = 0;
>
> ec.szFIBSBoard = NULL;
>
> 3.2) FIBS board Strings
>
> You can send FIBS board:* Strings which will be evaluated according to the
> settings read from your .gnurc. The reply is the decision GNU makes. Last
> time i looked the output for drop/take decisions was broken, may be fixed
> since 2004 maybe ...
>
> Synopsis: board:[[:alpha:]_]+:[[:alpha:]_]+(:{-?[0-9]+})+
>
> Fibs board syntax is defined here:
> http://www.fibs.com/fibs_interface.html#board_state
>
> Example:
>
> --- snip ----
>
> board:You: Other
> :1:0:0:0:-1:-1:0:0:0:5:0:3:0:0:0:-4:5:0:0:0:-4:0:-5:0:0:0:0:2:0:1:2:1:0:0:1:1:1:0:1:-1:0:25:0:0:0:0:2:6:0:0
>
> 13/11 24/23
>
> --- snip ----
>
> 3.3) EVALUATION FIBSBOARD
>
> Reads a fibs board and returns winning/losing probabilities and equity.
> Allows to set some evaluation parameters for each command.
>
> Synopsis:
>
> EVALUATION FIBSBOARD (AFIBSBOARD) [PLIES n] [CUBE ON|OFF] [CUBEFUL] [PRUNE]
> [CUBELESS] [NOISE x*10000] [REDUCED n]
>
> --- snip ----
>
> EVALUATION FIBSBOARD board:You: Other
> :1:0:0:0:-1:-1:0:0:0:5:0:3:0:0:0:-4:5:0:0:0:-4:0:-5:0:0:0:0:2:0:1:2:1:0:0:1:1:1:0:1:-1:0:25:0:0:0:0:2:6:0:0
> PLIES 2 CUBEFUL
>
> 0.491580 0.127632 0.003513 0.136681 0.005096 0.491580
>
> --- snip ----
>
> The numerical return values from left to right mean:
>
>
> #define OUTPUT_WIN 0
>
> #define OUTPUT_WINGAMMON 1
>
> #define OUTPUT_WINBACKGAMMON 2
>
> #define OUTPUT_LOSEGAMMON 3
>
> #define OUTPUT_LOSEBACKGAMMON 4
>
> #define OUTPUT_EQUITY 5
>
> #define OUTPUT_CUBEFUL_EQUITY 6
> The respective code executed (excerpt) is:
>
> --- snip----
>
>
> if ( nMatchTo ) { // wird FALSE bei moneygame
>
> if ( ec.fCubeful )
>
> r = arOutput[ OUTPUT_CUBEFUL_EQUITY ];
>
> else
>
> r = eq2mwc( arOutput[ OUTPUT_EQUITY ], &ci );
>
> }
>
> else
>
> r = ec.fCubeful ? arOutput[ 6 ] : arOutput[ 5 ];
>
>
>
> szResponse = g_strdup_printf( "%f %f %f %f %f %f\n",
>
> arOutput[ 0 ],
>
> arOutput[ 1 ],
>
> arOutput[ 2 ],
>
> arOutput[ 3 ],
>
> arOutput[ 4 ],
>
> r );
> --- snip----
>
> Hope that helps to get started.
>
> Virtually yours,
> Ingo
>
>
> -----Original Message-----
> From: address@hidden [mailto:address@hidden On Behalf Of LeeRoy
> Sent: Thursday, February 14, 2008 12:49 AM
> To: address@hidden
> Subject: [Bug-gnubg] search documentation about external inteface
>
>
> Do you know if somebody had made some documentation about the protocol of
> the external interface?
> Do I must make reverse engineering to understand this system?
>
> I begin with gnubg, everything could help me.
>
> Thank you.
>