Какой оптимальный алгоритм для игры 2048?

Я недавно наткнулся на игру 2048 . Вы объединяете подобные плитки, перемещая их в любом из четырех направлений, чтобы сделать плитки «большего размера». После каждого хода новая плитка появляется в случайной пустой позиции со значением либо 2или 4. Игра заканчивается, когда все поля заполнены, и...