Author |
Topic: Bot Interface Gamestate file (Read 1109 times) |
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Bot Interface Gamestate file
« on: Nov 22nd, 2008, 12:42pm » |
Quote Modify
|
I need some help understanding the bot interface gamestate file. When playing a game using the continuous tournament time control, 60s/5m/75/0/4h/4m the gamestate file does not report the current reserve time of the side to move properly. For example if the bot is playing gold, tcbreserve will show the proper reserve for the opponent, tcwreserve is capped at 180. Is tcturntime the max time allowed for one move? If so, then it should be ok to have tcwreserve report the full value even if it is over 180 seconds.
|
|
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: Bot Interface Gamestate file
« Reply #1 on: Nov 22nd, 2008, 3:41pm » |
Quote Modify
|
Interesting I had never noticed this since I basically always use min(reserve, turntime) for most everything. Janzert
|
|
IP Logged |
|
|
|
99of9
Forum Guru
Gnobby's creator (player #314)
Gender:
Posts: 1413
|
|
Re: Bot Interface Gamestate file
« Reply #2 on: Nov 23rd, 2008, 1:21am » |
Quote Modify
|
on Nov 22nd, 2008, 12:42pm, jdb wrote:Is tcturntime the max time allowed for one move? If so, then it should be ok to have tcwreserve report the full value even if it is over 180 seconds. |
| Unfortunately changing this will break previous versions of gnobot. Perhaps another solution is to pass a new variable with the full reserve time (tcwfullreserve, tcbfullreserve).
|
|
IP Logged |
|
|
|
aaaa
Forum Guru
Arimaa player #958
Posts: 768
|
|
Re: Bot Interface Gamestate file
« Reply #3 on: Nov 23rd, 2008, 4:33am » |
Quote Modify
|
on Nov 22nd, 2008, 12:42pm, jdb wrote:For example if the bot is playing gold, tcbreserve will show the proper reserve for the opponent, tcwreserve is capped at 180. |
| This is exactly how things work with the game client, so this is most likely done so that the client always shows the hard time-per-move limit. on Nov 23rd, 2008, 1:21am, 99of9 wrote:Perhaps another solution is to pass a new variable with the full reserve time (tcwfullreserve, tcbfullreserve). |
| Of course, since us humans would also like to be always able to see what our reserve beyond this is (and not just when it's not our turn), I'll add in an additional request to make the client also display the contents of such variables.
|
|
IP Logged |
|
|
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Re: Bot Interface Gamestate file
« Reply #4 on: Nov 23rd, 2008, 5:51am » |
Quote Modify
|
on Nov 23rd, 2008, 1:21am, 99of9 wrote: Perhaps another solution is to pass a new variable with the full reserve time (tcwfullreserve, tcbfullreserve). |
| Sounds good to me.
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: Bot Interface Gamestate file
« Reply #5 on: Nov 26th, 2008, 6:38am » |
Quote Modify
|
on Nov 22nd, 2008, 12:42pm, jdb wrote:I need some help understanding the bot interface gamestate file. When playing a game using the continuous tournament time control, 60s/5m/75/0/4h/4m the gamestate file does not report the current reserve time of the side to move properly. For example if the bot is playing gold, tcbreserve will show the proper reserve for the opponent, tcwreserve is capped at 180. Is tcturntime the max time allowed for one move? If so, then it should be ok to have tcwreserve report the full value even if it is over 180 seconds. |
| Yes, tcturntime is the max time allowed for one move. This parameter was not in the original time control specs and was introduced later. To allow older bots and UI clients to handle such time controls without any changes, I overloaded tc?reserve such that if the actual reserve is greater than tcturntime it is set to tcturntime. However, it does end up masking the amount of actual reserve time left when it is greater than tcturntime. If you need it I can add another parameter to show it.
|
|
IP Logged |
|
|
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Re: Bot Interface Gamestate file
« Reply #6 on: Nov 26th, 2008, 7:13am » |
Quote Modify
|
on Nov 26th, 2008, 6:38am, omar wrote: Yes, tcturntime is the max time allowed for one move. This parameter was not in the original time control specs and was introduced later. To allow older bots and UI clients to handle such time controls without any changes, I overloaded tc?reserve such that if the actual reserve is greater than tcturntime it is set to tcturntime. However, it does end up masking the amount of actual reserve time left when it is greater than tcturntime. If you need it I can add another parameter to show it. |
| It would be nice information to have available, if its not too much trouble. Thanks
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: Bot Interface Gamestate file
« Reply #7 on: Dec 21st, 2008, 5:24pm » |
Quote Modify
|
I added a tcwreserve2 and tcbreserve2 parameter that shows the actual reserve time even if tcwreserve and tcbreserve are less due to tcturntime being set.
|
|
IP Logged |
|
|
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Re: Bot Interface Gamestate file
« Reply #8 on: Dec 22nd, 2008, 10:39am » |
Quote Modify
|
I tried out the new parameters. A couple of notes. 1) The gamestate file only contains the tcXreserve2 entry for the side to move. This is enough info, since the tcYreserve (for the other colour) contains the full reserve value. 2) The tcXreserve2 entry is always blank in the gamestate file.
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: Bot Interface Gamestate file
« Reply #9 on: Dec 23rd, 2008, 8:08pm » |
Quote Modify
|
Yes, currently the tcXreserve2 parameter is only set if tcXreserve will be modified. Would you like it to always be set?
|
|
IP Logged |
|
|
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Re: Bot Interface Gamestate file
« Reply #10 on: Dec 23rd, 2008, 9:49pm » |
Quote Modify
|
Yes, it should always be set. If it is set conditionally, it makes the gamestate file info harder to parse.
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: Bot Interface Gamestate file
« Reply #11 on: Dec 24th, 2008, 7:39am » |
Quote Modify
|
OK I've changed it to always be present.
|
|
IP Logged |
|
|
|
jdb
Forum Guru
Arimaa player #214
Gender:
Posts: 682
|
|
Re: Bot Interface Gamestate file
« Reply #12 on: Dec 24th, 2008, 8:29am » |
Quote Modify
|
Now, tcbreserve2 and tcwreserve2 are always present, but both are still blank. Code: plycount=3 tcmove=60 lastmoveused=10 tcturns=0 wplayer=* bot_clueless turn=w tcreserve=300 starttime=1230135868 t=111685 wused=1 rated=1 e=bot_clueless barrived=1230135867 gameId=684962776 timeonserver=1230135989 postal=0 moves=1w Ee2 Md2 Hg2 Hb2 Df2 De1 Cd1 Cc2 Ra2 Rh2 Ra1 Rb1 Rc1 Rf1 Rg1 Rh1%131b ha7 db7 cc7 md7 ee7 cf7 dg7 hh7 ra8 rb8 rc8 rd8 re8 rf8 rg8 rh8%132w Ee2n Ee3n Ee4n Ee5n%132b md7s cc7e%133w Hg2n md6w mc6x Ee6w Ed6e%133b cd7w%134w tcwreserve2= s=w event=Casual game tableId=111685 tcgame=120 roomId=3 lastmovereserve=377 tcmax=0 title=Game Number: 111685 wpresent=1230127704 warrived=1230127704 tcwreserve=180 wrating=1887 movenum=4w tcbreserve2= r=w position=4w %13 +-----------------+%138| r r r r r r r r |%137| h d c e c d h |%136| X E X |%135| |%134| |%133| X X H |%132| R H C M D R |%131| R R R C D R R R |%13 +-----------------+%13 a b c d e f g h%13 tcgamenow=121 auth=083389104696 wstartmove=1230135988 timecontrol=R 60s/5m/75/0/4h/4m tcbreserve=415 tctotal=14400 brating=1996 bplayer=* jdb tcpercent=75 creattime=1230127704 chat=g 1g: This bot uses the full search%13 lastchange=12 tcturntime=240 bused=10 cts=1230127704 bpresent=1230135867 --END-- |
|
|
|
IP Logged |
|
|
|
omar
Forum Guru
Arimaa player #2
Gender:
Posts: 1003
|
|
Re: Bot Interface Gamestate file
« Reply #13 on: Jan 1st, 2009, 10:11am » |
Quote Modify
|
Sorry, typo in the variable name it was being set from. Should be OK now.
|
|
IP Logged |
|
|
|
|