Hello everyone, I'm sure many of you have been watching and enjoying the recent lockout streams organized by ecnerwala and scott_wu and would be wanting to compete with your friends in a similar format. I have made a discord bot that does exactly the same. The source code for the bot can be found here.
The bot gives a set of 5 problems with ratings from [x, x+400], where x is chosen by you and the point distribution is [100, 500]. The first person to solve a problem gets the points for it. The match ends when someone has >= 800 points or 45 minutes have been elapsed. The bot automatically updates the status when someone solves a problem but you can also do it manually.
Steps to use
First you will have to link your codeforces handle with your discord id. To do that type
.handle identify <cf username>. The bot will give you a random string, which you have to set as your first name in your profile. On successfully doing that, you will be able to compete with others.
Now you can challenge your opponent by typing
.match challenge <opponent discord name> <rating>. The bot will now give problems in the range [rating, rating+400] if your opponent accepts the match.
To accept a challenge, simply type
.match accept and the bot will chose 5 random unsolved problems by both the participants in the rated range given.
The bot will automatically update the status of the match, but you can also manually trigger it by typing
The bot has few more features which you can try out yourself by joining this server. Any suggestions to make it better are welcomed.
UPD: If you want to report any bug or make suggestions, it will be better to comment in the support server rather than commenting here, since I will be able to respond faster and there will be better communication.
UPD: The bot has a new command
.round. It is very similar to
.match but now you can compete against multiple opponents (upto 5), can select time duration, number of problems (upto 6), rating for each problem and points for each problem. Additionally you can also specify whether you want a new problem to appear after someone solves a problem. You can also generate your own problemset for the round. Detailed commands usage can be found here
UPD: You can now create your own tournaments in your server using the bot. The supported tournament types are Single elimination, Double elimination and Swiss. The tournaments will be hosted on Challonge and you just need to setup a tournament using
.tournament setup command and the bot will take care of setting and updating brackets. Detailed information about this command can be found here