Skip to content
CodinGame Tour

CodinGame Tour

The goal of this document is to discover CodinGame web interface and main features.

First connection

00-LandingPageThe first time, start page is just a wecolming page, so just let's Get Started!

01-LandingPageAccount

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

02-OnBoardingThe 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

03-OnBoarding-StatementFor 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

04-OnBoarding-LanguageGames can be play using various languages, one must be selected at a time in order to switch to the proper code editor.

Code Editor

05-OnBoarding-CodeOnce 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

06-OnBoarding-Check

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.

07-OnBoarding-Check2When 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

09-DashBoardOnce 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

10-Practice

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.

11-PuzzleMarsLander

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.

12-PuzzleMarsLander2Puzzle solving interface is very similar to the one seen during onboarding (thos one is animated, some others not).

14-PuzzleMarsLander-History

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

15-Compete

16-Compete2

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.

17-ClashOfCode

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.

18-Bot

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.

19-Opti

That's all, so let's code!