Author |
Topic: AEI problem, questions (Read 2876 times) |
|
petermck
Forum Junior Member
Arimaa player #9440
Gender:
Posts: 6
|
|
AEI problem, questions
« on: Jan 28th, 2015, 10:27pm » |
Quote Modify
|
Here's a snippet from my bot's AEI log: 2015-01-28 08:38:11 INFO:gameroom:Received move 25b rd7w ed6n ed7n ed8e 2015-01-28 08:38:11 INFO:gameroom.position: 26w +-----------------+ 8| e r | 7| r r E R r r | 6| r c X h D c | 5| R r | 4| R | 3| h X m X R | 2| R R R C | 1| R | +-----------------+ a b c d e f g h 2015-01-28 08:39:09 INFO:gameroom:Sending move Ee7w Ra2n Cd2e Rh1n 2015-01-28 08:39:29 INFO:gameroom.net:bad response from server trying again in 10 seconds 2015-01-28 08:40:00 INFO:gameroom.net:bad response from server trying again in 20 seconds 2015-01-28 08:40:24 ERROR:gameroom:Error in response to Table.move: Gameserver: Bad Move: bad step Ee7w Ra2n Cd2e Rh1n 2015-01-28 08:40:44 INFO:gameroom.net:bad response from server trying again in 10 seconds 2015-01-28 08:41:15 INFO:gameroom.net:bad response from server trying again in 20 seconds 2015-01-28 08:41:36 INFO:gameroom.position: 27w +-----------------+ 8| e r | 7| r r E R r r | 6| r c X h X c | 5| R r | 4| R | 3| R h X m X R | 2| R R C R | 1| | +-----------------+ a b c d e f g h 2015-01-28 08:41:36 INFO:gameroom:Game over, I lost result: 'bi' Looks like there was a network problem and the move was sent then re-sent, but was received both times, with the 2nd one being interpreted as an illegal move. Is this a known issue, either in the AEI implementation or the underlying protocol? I'm using AEI 1.1 from here: http://arimaa.janzert.com/aei/ Except I hacked the code to reduce the timeout from 300sec to 20 sec so that my bot wouldn't lose on time at the first network glitch (which worked well until now). There's also the latest dev version in the github repository: https://github.com/Janzert/AEI Is anyone using that version? Any problems? cheers, Peter
|
« Last Edit: Jan 28th, 2015, 10:28pm by petermck » |
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: AEI problem, questions
« Reply #1 on: Jan 29th, 2015, 2:05am » |
Quote Modify
|
It's a known issue with the underlying server protocol. Basically when the network connection is broken while trying to send a move the bot interface doesn't know if the server actually received it or not*. Most of the time the answer is that the server hasn't so it tries to resend it. But if the server actually did receive the move *and* the opponent responded in the meantime, the server then tries to apply the move to the next turn. Of course it's almost always illegal at that point. A simple fix for this would be for the server to accept the move number along with the actual steps of the move and discard the move/return an error if it was not for the current turn. Janzert * The interface could try querying the server for the current game state after the first failure. From what I've seen though this would lead to a timeout even more frequently than the illegal move result.
|
|
IP Logged |
|
|
|
petermck
Forum Junior Member
Arimaa player #9440
Gender:
Posts: 6
|
|
Re: AEI problem, questions
« Reply #2 on: Jan 29th, 2015, 10:04am » |
Quote Modify
|
Right, I thought it might be something like that. It's a pretty bad flaw in the protocol. I agree your proposed fix would work. But simpler might be just sending the board state instead of the move number. A single line FEN style string is fairly concise. From memory that's the way the ICC/FICS protocol works (or did work when I wrote an interface for my chess program many years ago).
|
|
IP Logged |
|
|
|
|