How do I play programming games?

Programming games are turn-based. On each turn, you will get info from standard input (like a map, the enemies, etc.), then your code computes a strategy and writes an action to standard output (like shoot or move).
For each programming language you're always given a default code to work from. This simple tutorial explains how everything works.

What environment does my program run in?

Your program is compiled and run in a Linux environment on a 64bit multi-core architecture. Time limit per turn is specified on the game’s statement. Here is the list of compilers/runtimes associated with each programming language:

Memory limit (MB)
BashGNU Bash 5.0.3768
Cgcc 10.2.1 mode C17
With the following libraries ‑lm, ‑lpthread, ‑ldl, ‑lcrypt
C++g++ 10.2.1 mode C++17
With the following libraries ‑lm, ‑lpthread, ‑ldl, ‑lcrypt
C#C# 8.0 (.NET Core Runtime 3.1.3)
Compiled with ‑unsafe
Clojure1.10.3 - Oracle JVM 1.8768
DDMD 2.096.0768
F#.NET Core Runtime 3.1.3768
JavaOracle JDK 1.8.0 / OpenJDK 11.0.2 (depends on played game)768
JavaScriptNode 14.16.1768
Groovy3.0.8 - Oracle JVM 1.8768
HaskellHaskell Platform 8.4.3768
KotlinKotlin 1.5.0768
Objective‑CClang 11.0.1768
PascalFree Pascal Compiler 3.2.0768
With the following libraries Array::Utils, List::Util, Data::Dumper, List::Compare, List::MoreUtils, threads, Moose, DateTime, IPC::System::Simple, autodie, enum, Tree, String::Util, Set::Scalar
Compiled with ‑‑enable‑mbstring, ‑‑enable‑zip, ‑‑enable‑bcmath, ‑‑enable‑calendar, ‑‑enable‑wddx, ‑‑enable‑intl, ‑‑enable‑soap, ‑‑enable‑sockets
Includes NumPy 1.20.2, pandas 1.2.4, SciPy 1.6.3
Includes chrono 0.4.19, itertools 0.10.0, libc 0.2.93, rand 0.8.3, regex 1.4.5, time 0.2.26
Scala2.13.5 - Oracle JVM 1.8768
TypeScript4.2.2 (ES2018) - Node 14.16.1768
VB.NET.NET Core Runtime 3.1.3768

Can I change the programming language?

Yes, you can change the language at any time from the menu. But beware, if you've started to write a solution, your current code will be lost.

What are the test cases?

Test cases check if your code works as expected.

How are scores calculated?

Your score is awarded when you submit your solution: your code is tested with sets of test cases which cover the game’s specifications. The more test cases your code can pass, the higher your score will be.

How to contact our team?

Feel free to drop us a line at

CodinGame Sync

What is CodinGame Sync?

CodinGame Sync is a browser plugin which allows you to use an external local code editor instead of the CodinGame web code editor when solving puzzles. More information is available on the forum.

What browsers are supported by CodinGame Sync?

Currently only Chrome is supported. If the feature is well received by the CodinGamers community, the idea is to open source it. Then either CodinGame or the community will be able to build a Firefox plugin :).

How do I install CodinGame Sync?

On Chrome you need to install two components available from the Chrome Web Store: the ‘CodinGame Sync App’ and the ‘CodinGame Sync Ext’

How do I activate CodinGame Sync?

When solving a puzzle, or playing a multiplayer game, open the Settings panel, scroll down and enable the ‘local code editor’ option.

A separate window for the CodinGame Sync App will open from which you can control the plugin settings. The first time you start the plugin, you will be prompted to select a local file which will be synced to your CodinGame code editor.

How does CodinGame Sync work?

Once activated, each time you enter the CodinGame IDE, you will be prompted to either download the code from CodinGame to your local file or upload the content of your local file to CodinGame. Once done you can use your local code editor to edit that file. Each time you save the file, it will be copied back to CodinGame.

By default the CodinGame editor is put in read-only mode when the plugin is activated but this can be changed from the CodinGame Sync settings panel (2-way data mode).

Feel free to experiment with the other available options. When in doubt please ask for help from the dedicated forum topic.

Why is it marked as Beta?

Although the plugin is functional, we would like to gather feedback on what really works out for you and what doesn't and could be improved. Once we get enough feedback and stabilize the plugin, we'll remove the Beta tag.

All feedbacks should go to the dedicated forum topic.

codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
Online Participants