- Updated Tuesday, March 29th 2016 @ 14:22:20
I have made an unofficial engine which speaks the same IO format as is used here. If anyone would like to use it for their own testing, the code is here:
At the moment, the engine only looks for ko in the last 10 moves, which should probably be increased.
Also, if you would like to test your bot in real time against other contestants, I have set up a TCP server:
The bot runs on your machine, only the IO is sent over the network. Beware that bot passwords are sent in plaintext, so choose a disposable password and keep it in the script you use to run the bot. The ranking table and replays may be wiped periodically. You can run as many bots as you like in parallel (with different usernames). The code behind this site is maintained here:
If you find any bugs in either project, please let me know by opening an issue on the github page.
Some things in the IO and other behaviour may not match exactly. Bots will usually be told that they have 10000ms per move, and they will not time out unless they fall silent for longer than that. If you want to match the timing conditions on the site, your bot would have to do its own timekeeping rather than relying on the "action move n" value. Also, bots are currently sent an extra "player_seed" line in the setup, which can be used to initialize the PRNG in your bot for more repeatable results. Currently the turn limit is set to 600.
The intent is that otherwise, the implementation of the game should match the one used on this site. If you find that it isn't so, please alert me.
- Created Wednesday, March 30th 2016 @ 07:22:48
It looks very cool! I will try it out soon.
- Created Wednesday, March 30th 2016 @ 07:30:41
Just note from the instructions on the "howto" if your machine is like mine and 'python' defaults for python3 it wont work. Just change to python2 and then it works great.
Seems to work for me, though my bot is dumb and doesn't know much about ko, or strategy, or looking ahead.
Good work. Thanks.
- Updated Saturday, April 2nd 2016 @ 17:54:45
Another small utility:
It can be used to convert the IO stream saved from the site into an SGF file, in case you want to review the games in normal Go software.
Just save the IO stream as a text file in the same directory as the Python files, and invoke the program like so:
python aigames_to_sgf.py go_io.txt > output.sgf
The generated file is very basic but should be correct.
- Created Sunday, April 3rd 2016 @ 22:39:51
Wow! This is awesome, smiley. I'll use this as soon as I have something working.
- Created Monday, April 4th 2016 @ 04:24:02
test1 and test3 aren't all that strong as competition. I'm leaving "hitechbunny" running, please join in!
- Created Monday, April 4th 2016 @ 17:08:07
Seems like the engine is relying on the bots to detect ko situations (and maybe that's fine): http://frogherd.com:2084/replay.2837
- Created Tuesday, April 5th 2016 @ 04:00:07
How hard do you think it will be to update with the new rules? http://theaigames.com/discussions/go/57027a075d203cb818cc86c8/go-updates/1/show
I really appreciate the server! My bot has played 300 games on your server in the time that it's played 2 here.
- Created Tuesday, April 5th 2016 @ 12:36:10
The fact that Ko is not being prevented at all is definitely a bug, thanks for finding it. :)
I'm certainly planning to update it for the new rules, I'll post back here when ready. The IO update will be easy once the Ko bug is solved, but I don't know how long that will take.
I'm glad some bots are being tested there. The more people use the server, the more benefit people will get from those games. :)
- Updated Tuesday, April 5th 2016 @ 18:54:07
Hmm. There was a glitch for a moment back there. It was trying to play tron??
connected to frogherd.com:2085 as hitechbunny2 INFO: game 3501 tron05.map : ['hitechbunny2', 'test3', 'test1'] settings timebank 10000 settings timepermove 5000 settings playernames Player1,Player2 settings yourbotid 1 settings fieldwidth 19 settings fieldheight 19 settings playerseed -1019833120207339084 end you timed out.
- Created Tuesday, April 5th 2016 @ 18:56:20
I think the server you're running is great! I'm onto "hitechbunny3". I declare it unbeatable! (It's not, but see what I did there?)
- Created Tuesday, April 5th 2016 @ 19:01:06
Hmm. Here's a more involved Ko example: http://frogherd.com:2084/replay.3505 (around turn 105).
- Updated Wednesday, April 6th 2016 @ 08:02:57
I've now updated the TCP server and standalone engine. The Ko bug has been fixed, and I've updated the IO and other settings to (attempt to) match the real server. If you find any more bugs, please alert me. :)
Ko seems to be detected correctly within the past 100 boards, but I haven't tested it as rigorously as I might like. Illegal moves are treated as passes.
That reference to the Tron map is a hangover from an earlier use of this code, which you can see here:
http://frogherd.com/aiweb/replay/42974.replay/ (currently not compiling submissions or running matches)
I haven't updated it for the fact that Go doesn't use maps, so it's still selecting a map as part of the matchup process: that error was caused when it selected a 3-player map, which has now been removed from the set.
You may need to restart your scripts, as some games will have been left hanging when I restarted the server processes.
- Created Wednesday, April 6th 2016 @ 17:08:33
Excellent! Thanks, smiley.
- Updated Thursday, April 7th 2016 @ 12:34:20
UPDATE: the bug described here has now been fixed.
I've just noticed that one of the IO changes isn't quite right, mine is saying
update game last_move 4 5
when it should be
update game last_move place_move 4 5