A 2048 with undo function