L game is a two-player game played on a 4×4 board. There are only two types of pieces. The first type is the 2×3 L-shape piece and there are only two pieces of L on the board. It is also why the game is called L game. The second type is the 1×1 dot piece and there are also two pieces of dot on the board.
Each player takes turn to change his/her L position (either the red or the blue L) and the L must be in different position than the initial position. Then he/she can move the one of the dot to any empty square or skip by giving up the right to move the dot.
The goal is to block the opponent until there is no more move for the opponent where the game ends and a winner is determined.
The game is being described in detail in this book The 5-Day Course in Thinking.
In Edward de Bono’s own words,
The intention was to produce the simplest possible game that could be played with a high degree of skill. An attempt (L game) was made to fulfil the following conditions:
- A minimum number of playing pieces, preferably one each.
- The smallest possible board.
- A game with very few rules, one that would be very simple to learn and play.
- A game that could be played with a high degree of skill.
- A game that would not be determinate. A determinate game such as nim or noughts and crosses, is one in which the starting player could always win if he knew the strategy. An indeterminate game is one which two perfect players would play for ever.
The motivation behind developing this game is that there are not many people doing it. I can only find one web version, one Apple store version and one Google Play version. And that’s it. Probably the game is not that popular. Still, I decided to make my version of it.
Another reason is to practice new skills on simple project. This game is simple enough for this purpose. You can learn more about the game from the wikipedia.
Once again, I am using the open-source Cocos2d-JS game engine for this project.
It took me 3 days to complete the minimal-viable-product. 60 % of the time was used to understand the detail of the game’s dynamic like:
- how to determine a valid move (it is not that obvious as I initially thought),
- how to calculate all the valid moves,
- how to allow player to undo steps,
- how to write a simple AI (Artificial Intelligence) to play against human or even with AI itself,
There is no sound at all for this version to save the development time.
My version of L game is available on the web here.
It is also available on Google Play.
What I like about the game is the capability to allow the computer to play against the computer. It is really amazing to look at game played automatically by the robot. I admit I spent most of the time watching the computer playing the game on automation. It almost seems like it has a life of its own.
You can try the game below.
Your browser does not support iframes.