Escape the Maze with Code
The World was shattered after the big disaster. The AI systems went down, half of the population was missing and a major part of the technology in the world stopped working.
The World Governments came together to start Mission Maze having the objective of finding the best minds on earth and train them to bring back all the lost information and technology as fast as possible.
You are appointed as the Maze Maker and Selector. To select the best minds on earth you decide to start project ProgBattle which will focus on creating a web portal for hosting a tournament. Where participants will form teams, write intelligent bot scripts, run test battles against system bots, challenge rival teams, and climb the leaderboard in a race to the top.
Only the smartest minds will make it through. Those who reach the final stage will be seen as the best ready to lead Mission Maze and help bring back the lost knowledge and technology.
engine.py
it runs the game, you may try one yourself bypython3 engine.py --p1 bot1.py --p2 bot1.py
and creates agame_log.csv
- We have provided you with a basic bot which tries to move in the direction of the ball in the
bot1.py
- A System for users to login, register using their mail id, [
Bonus
: if you can send verification mail :)] create teams [ensure a max size]. - A publically visible leaderboard
- Round one will be based on scores against the system bots provided by the admin. (you may define any scoring system)
- Round two will be for the top 16 teams, where they will compete with each others' bot (by system itself and final leaderboard will be published with all the matches in the logs).
Bonus
A feature to challenge other teams, this will not be counted for the leaderboard but to improve there strategies.
- How will the bot-script submitted ?
- Any member of the team can login and submit either the code file directly or should be provided a interface to code in the application itself. (no need to provide features like auto completion, background error detection, but the syntax highlighting is must)
- The user should be able to view his/her team's previous submission, edit them in the application's interface and submit them.
- You should ensure that there is a daily / hourly limit for the team / user to submit the scripts.
- Upon submission:
-
The Bot should be evaluated against system bots uploaded by the admin, by running the
engine.py
at the server. -
The user should be able to see the final scores obtained against the system bots.
-
Update the global leaderboard accordingly, you may use any scoring strategy.
-
On user request show the simulations of the game similar to this: (you may use any other way to render the simulation, but it should not be a video fetched from backend, it should be rendered using the logs at the frontend itself,
To help you: Research about HTML Canvas
) -
Bonus
Check the submission using some sort of plagiarism detector and flag those submissions for the admin. -
Bonus
It is possible that the simulation or the evaluation can't be done on the spot due to over load on serve, structure you project to tackle such situations.
-
- You will be strictly required to submit all your work, research, demo video in a properly documented ( .md files are enough) github repository.
- A Frontend Interface: Can be very basic in terms of style, as long as it is able to properly demonstrate what you have created. But we don’t mind a full-fledged beautiful frontend :).
- All set up instructions should be well described,
Bonus
if you can provide us a fully hosted application. - Your backend server should be accessible via well-defined endpoint for testing.
Bonus
if you properly document how to use the routes using Postman, or any such application.