VimGolf is a fun game to play with. However in the past, many human players and AI bots have cheated in the game. We have implemented a new system to prevent cheating and make the game more fair.

Common VimGolf cheating methods

Cheating in VimGolf is when a player uses a method that is not allowed by the rules of the game. For example, using a method that is not allowed by the rules of the game.

Possible cheating methods include:

  • Invoke shell commands or external programs.
  • Read the content of the output file into the editor.
  • Submit a solution that will not solve the problem on other machines.
  • Using a plugin or extension that solves the problem without using Vim conventional commands.

How we prevent cheating

After we receive a solution, we will run the solution in a sandbox environment. The sandbox environment will have the following restrictions:

  • The environment is dockerized.
  • There will be no network access.
  • The output file is not present in the container.

The sandbox environment will then execute the solution in a Vim editor and produce output. The output will be transformed into sha256 hash and compared with the expected output hash. If the hashes match, the solution is considered correct.

Meanwhile, to ensure consistent behavior of the original VimGolf client, we first use dos2unix and newline addition (if missing in the end of file) to transform both input and output files before validating the solution.


Code and applications of VimGolf verifier: