Ваша задача - симулировать математически совершенную игру 2048 года. Идея состоит в том, чтобы найти теоретический верхний предел того, как далеко может пройти игра 2048 года, и найти способ ее достижения.
Чтобы понять, как это выглядит, поиграйте с этим клоном 2х2 и попытайтесь набрать 68 очков. Если вы это сделаете, вы получите плитки 2, 4, 8 и 16. Невозможно продвинуться дальше этой точки.
Ваша задача стала проще, потому что вы можете выбрать, где появляются плитки и каковы их значения, как этот клон .
Вы должны написать программу или функцию, которая принимает плату 2048 в качестве входных данных и выводит плату с порожденным тайлом и доской после свертывания тайлов. Например:
Input:
-------
0 0 0 0
0 0 0 0
0 0 0 0
0 0 8 8
Output:
-------
0 0 0 0
0 0 0 0
0 0 0 0
0 4 8 8
0 0 0 0
0 0 0 0
0 0 0 0
0 0 4 16
Ваша программа будет повторно получать собственный вывод для имитации всей игры 2048 года. Первым вводом программы будет пустая доска. Вы должны возродить одну плитку, в отличие от двух оригинальных игр. На последнем этапе игры вы не сможете двигаться, поэтому ваши две доски вывода могут быть идентичными.
Вы должны, конечно, только выводить законные ходы. Можно создать только 2 или 4, вы должны двигать или сворачивать хотя бы одну плитку на ходу и т. Д.
Я намеренно сделал требования к вводу и выводу расплывчатыми. Вы можете выбрать формат ввода и вывода. Вы можете использовать матрицы, массивы, строки или что угодно. Пока вы можете имитировать игру 2048 с ними, ваши входы и выходы в порядке.
Победителем станет тот, кто завершит игру с наибольшим количеством плиток на доске, а затем с наименьшим количеством байтов в исходном коде. Выигрыш от оригинальной игры не будет принят во внимание. (Подсказка: используйте 4)