I have seen ideas in this forum to implement a bot that plays the most drawish move possible.
This is an interesting idea, but my goal for some time has been to build a GUI bot - one that is configurable by and can print its output to a web browser.
I have now a very very beta GUI bot which I configured to play as a draw bot:
https://liguibot.herokuapp.com
The bot the can be run using the above web page. It is configured to play using the account:
https://lichess.org/@/HumbleTestBot
When the page loads, you should see the bot console. In this console you have to press the "LC" button ( Load Config ) which loads the configuration from json bin ( a simple storage for storing json by id ), and starts the control stream of the bot, so now you can challenge it and play a game. While playing the game, you can watch the bot console ( and the engine console ) for feedback.
I have seen ideas in this forum to implement a bot that plays the most drawish move possible.
This is an interesting idea, but my goal for some time has been to build a GUI bot - one that is configurable by and can print its output to a web browser.
I have now a very very beta GUI bot which I configured to play as a draw bot:
https://liguibot.herokuapp.com
The bot the can be run using the above web page. It is configured to play using the account:
https://lichess.org/@/HumbleTestBot
When the page loads, you should see the bot console. In this console you have to press the "LC" button ( Load Config ) which loads the configuration from json bin ( a simple storage for storing json by id ), and starts the control stream of the bot, so now you can challenge it and play a game. While playing the game, you can watch the bot console ( and the engine console ) for feedback.
It's a shame that
https://jsonbin.io/
is such a small project. Just when I came public with my bot, the server was down for half a day, so the config could not load. Now it works again.
Storing an anonymous json blob under an id using a simple API is a very useful idea. A database is such an overkill for this purpose.
I'm not aware of any robust service that can do this apart from json bin, please if anybody is aware of such a service, let me know.
It's a shame that
https://jsonbin.io/
is such a small project. Just when I came public with my bot, the server was down for half a day, so the config could not load. Now it works again.
Storing an anonymous json blob under an id using a simple API is a very useful idea. A database is such an overkill for this purpose.
I'm not aware of any robust service that can do this apart from json bin, please if anybody is aware of such a service, let me know.
how about: https://firebase.google.com/docs/database/?authuser=0
@lishadowapps i played a 5 min game and really couldn't get out of the opening phase, it took so much time on moving. I am not sure if there was a force move command and near the end it just disconnected.
@lishadowapps i played a 5 min game and really couldn't get out of the opening phase, it took so much time on moving. I am not sure if there was a force move command and near the end it just disconnected.
#3
Thanks for this suggestion. With no small difficulty I have integrated Firebase into my project. This is a very advanced service and the price you have to pay for that is complexity. For any meaningful database access you need a service account. The key for this service account is a largeish json file that you have to download. Working this large a blob into an environment variable is not practicable. You have to commit this file, which is a security problem ( I created a public branch, to which I don't commit this file, but this is certainly a complication ). Also Pyrebase ( Python driver for Firebase ) installation took a long time and locking Pipfile timed out a few times before it finally succeeded. Still the service API itself is sane and business like, and so far storage worked as expected.
#4
The cause of slow moving was that DrawBot play requires infinite MultiPV mode, which generates insane amount of engine output ( cca. 35 times normal, since there are 35 legal moves in an average position ). The logging of this output to the browser slowed down engine output processing. I disabled engine logging during game play and set Move Overhead to a high value. Now the bot plays quickly.
#3
Thanks for this suggestion. With no small difficulty I have integrated Firebase into my project. This is a very advanced service and the price you have to pay for that is complexity. For any meaningful database access you need a service account. The key for this service account is a largeish json file that you have to download. Working this large a blob into an environment variable is not practicable. You have to commit this file, which is a security problem ( I created a public branch, to which I don't commit this file, but this is certainly a complication ). Also Pyrebase ( Python driver for Firebase ) installation took a long time and locking Pipfile timed out a few times before it finally succeeded. Still the service API itself is sane and business like, and so far storage worked as expected.
#4
The cause of slow moving was that DrawBot play requires infinite MultiPV mode, which generates insane amount of engine output ( cca. 35 times normal, since there are 35 legal moves in an average position ). The logging of this output to the browser slowed down engine output processing. I disabled engine logging during game play and set Move Overhead to a high value. Now the bot plays quickly.
What if you offer it a draw?
What if you offer it a draw?
#6, you my friend are a genius
#6, you my friend are a genius
Thank you :)
Sorry. Already exists.
https://www.tatasteelchess.com/images/news/R211.jpg
#6
The point of playing against DrawBot is trying to win against a strong opponent, who won't punish your mistakes.
A draw offer was made in correspondence against the bot, which I accepted by hand ( the bot cannot accept draw offers on its own ). This was a good inspiration to add challenge filter and disable correspondence ( since the bot can only play one game a time, an ongoing correspondence game would block it from playing ).
http://imagerepo.bitballoon.com/botaccept.png
#6
The point of playing against DrawBot is trying to win against a strong opponent, who won't punish your mistakes.
A draw offer was made in correspondence against the bot, which I accepted by hand ( the bot cannot accept draw offers on its own ). This was a good inspiration to add challenge filter and disable correspondence ( since the bot can only play one game a time, an ongoing correspondence game would block it from playing ).
http://imagerepo.bitballoon.com/botaccept.png