I must admit that I'm a bad programmer. I do not like configuring Maven and writing configurations for the Spring Framework. I do not know in every detail how the JVM works. I do not understand design patterns well, and any new technology depresses me. And yet, I love programming.
Specifically for people like me, there is a small class of games that represent the quintessence of programming. Playing these games, you do not need to cross-breed the hedgehog with the snake or worry about the library version. Here you get only crystal clear algorithmic programming, wrapped in a nice.
Excuse me but I am not going to write here about Robot Battle and that sort of games. Maybe I am a strange person, but I do not like to deal with something that even remotely resembles real physics. Interested people can read about Robot Battle here, and this article is about some other things.
This game is a true pearl of the genre. It combines a beautiful idea with a perfect realization. Your lyrical character is a nanotechnology engineer who designs reactors for assembly and disassembly of molecules.
The gameplay resembles programming in the language of Befunge: two manipulators move the game field (reactor) guided by arrows set in advance and performing instructions scattered across the field. Manipulators grab the molecules entering the reactor, move them, rotate, split and reassemble, then send the result to the exit. You may ask: "What is this all for?" Well, just for you there is a good sci-fi story inside and even some action elements.
The Codex of Alchemical Engineering
An earlier game from the same developer, immortalized in flash. Here you get numerous mechanical claws a la Bender Rodriguez, and molecules are replaced with alchemical ingredients.
In addition to the complexity, the game can boast an unusual system of saving your results in flash games. The special text is generated for each solution you create, then you can copy\paste that text to use it later (for example, on another machine) and perform the reverse transformation by restoring the solution from the text. This game also has a level-pack called the Magnum Opus Challenge, featuring more complex tasks and levels for those to whom the creation of the philosopher's stone seemed like an easy warm-up.
LightBot 1 & 2
Two parts of a flash game about a small robot on a checkered field. Following your instructions, the robot walks, turns, jumps and sets fire, carrying light and good to the most remote corners of the level.
Such kind of educational games was once very popular as computer science exercises in schools. With the rejection of the "Programming - the second literacy" ideology, they, unfortunately, were replaced with Word and Excel, but, this is a completely different story.
LightBot differs from other games. It has a strict restriction on the number of commands: 16 in the main program, another 8 in two subprograms. This does not allow you to program with just the spinal cord and pushes to connect your brain.
In the second part, in addition to the improved interface, there are such useful features as branching and recursion.
Colobot is a three-dimensional educational strategy game. The aim of the game (plot) is the preparation of planets for the colonization by people (Colonize with bots - Colobot). It's amazing when during the first few missions you write and shoot enemies, and later you load the necessary programs with small changes and the robots themselves start to collect resources, protect the base, recharge and so on.
It is another robot-control type of games. The story of this freeware game unfolds in a gloomy future, full of machines and... machines.
Unlike the games listed above, an event approach is implemented here: it is not the behavior of a robot that is programmed, but its reaction to certain stimuli. In addition, it has a unique feature that allows controlling several robots by one and the same program. However, for my taste the game is boring, so I placed it at the very end of the article.
The list is not complete and does not pretend to be complete. For example writing this post, I found an interesting online game called RoboZZle Game. At first glance, this is something I like, but so far I cannot say anything definite about it and recommend it.