bug-gnubg
[Top][All Lists]
Advanced

[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.
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]