I’ve decided to code a simple CLI version of the 2048 game in python:

https://github.com/kunigami/blog-examples/blob/master/2014-05-13-2048-python/2048.py

Some details of the implementation:

* I’ve handled only the “up” move. For the others I do a rotation of either 90, 180 or 270 degrees the matrix representing the board.

* The core of the algorithm is apply “gravity”, perform the merge with adjacent element with same number and then apply the “gravity” again because my merge function can leave empty spaces.