CodinGame Tour
The goal of this document is to discover CodinGame web interface and main features.
First connection
The first time, start page is just a wecolming page, so just let's Get Started!
No need for an account for now, let's Continue without an account!
Onboarding Tutorial
Now, let's follow the onboarding tutorial, in order to get familiar with the interface.
Main page
The interface now has switch to the one of a bot game (a turn-based game in which the program has to read input data and write a response in order to achieve a goal).
Rules zone
For each game, rules are displayed the same way, giveing details about:
- intial data, read once before first turn (some games, like this one, do not provide initial data)
- turn data, read before every turn
- output data, written once per turn
Language selection
Games can be play using various languages, one must be selected at a time in order to switch to the proper code editor.
Code Editor
Once the programming language has been selected, the editor zone is available with startup code (supposed to help starting). Code editor have syntax highlighting and basic completion features.
here, the example code (solution) has just to be copied/pasted at the end of the while loop
Local Code Checking
Some games come with a set of testcase that can be played separately or sequentially. It allows to check code against particular situations.
Clicking on Play Testcase allows to play a particular testcase separately. When several testcases are provided, a Play All Testcases button allows to play all testcases sequentially.
Sometimes testcase input data are visible (by clicking on testcase number), sometimes they are hidden.
After a testcase has been played, result is displayed as PASSED or FAILED. Sometimes failing reason is given (expected versus provided), sometimes not.
When the game is graphical (not always), the play/debug zone allows to see what happen (visually and also by displaying input/output turn data) and to run/replay step-by-step (forward or backward) in order to debug a bit.
Code Submission
Once all testcases pass, code can be submitted to the server in order to play it against similar but different testcases.
After submission, a score is given (in %) sometimes with achievements. The solution remains on server, can be shared with other users, discussed on a game-dedicated forum, ...
To go further, it is mandatory to create an account, so let's do it before reading the following.
Dashboard
Once logged in, the landing page is a dashboard, showing recent activities, skills and achievements, quest map, ...
Profile (and settings) is reachable from upper-right corner, and allows to add friends to follow.
Activities menu allows to juimp to other sections:
- Practice, to solve puzzles
- Compete, to compete against users on puzzles or bot programming challenges
- Cooperate, to play an escape game with a team
- Learn, to dive into user-contributed online ressources on various topics/languages
- Events, to discover upcoming events
So let's jump to practice section!
Puzzles
Practice section proposes to solve puzzles of various difficulty (easy, medium, hard, very hard). Easy puzzle can be solved with short programs often in a few minutes, hard puzzle require much more time, skill and coding.
Above is an example of a puzzle page (Mars Lander, in easy section). A description is given (not complete rules but an overview), as weel as current progress, achievements.
Discussions section allows to ask questions, report issues, ...
Solutions (accessible only when solved and shared) section allows to see solutions shared by other users.
Puzzle solving interface is very similar to the one seen during onboarding (thos one is animated, some others not).
Result section displays a brief of current progress (my report tab), but also allows to retrieve any submitted code (see History tab).
Compete
Compete proposes four different activities : Clash of Code, Bot programming challenge, Code golf, and Optimization
Code Golf
Code Golf are special puzzles that have to be solved with the shortest code possible.
Clash of Code
Clash of Code are 15 minutes long battles where up to 8 online users (friends can be invited, in public or private clashes) compete on a puzzle (each using their prefered language) that they discover only when clash starts.
Game mode, also known when clash starts, can be:
- Fastest, where the goal is to pass all testcases (given the rules) as fast as possible
- Shortest, where the goal is to pass all testcases with the shortest code whatever time spent
- Reverse, where the problem has to be guessed (no rules given) and solved just from valid input/ouput samples.
Bot programming challenges
Bot Programming Challenges are AI contests, organized in leagues. Wood leagues are relativeley easy and allows to discover the game (no need to program a complex behaviour), Bronze to Legend leagues are increasingly difficult.
The program to write depends on the topic but its always giving a command at the end of each turn, given initial data and turn data.
Once submitted, the AI is played against other users AI, percentage of victory establishing the rank in league. A special AI called the boss, must be defeated to be promoted on upper league.
Optimization
Optimization are puzzles that has to be solved the most efficiently possible. A score is computed, depending on various criteria.
That's all, so let's code!