Ваша задача - симулировать математически совершенную игру 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)
источник
Ответы:
Рубин, в угол, оценка: 3340
Вот очень простая стратегия, чтобы начать это. У меня есть идея для (почти) идеального результата, но у меня возникают проблемы с ее оформлением, поэтому здесь есть кое-что простое, чтобы все заработало.
advance
Функция является один ваш просить. Он принимает доску в виде 1d-массива и возвращает доску после появления плитки и после того, как ход был сделан.Вы можете проверить это с помощью этого фрагмента
Стратегия очень проста, и я использовал ее для перехода к 128, когда сам играл в 2048: просто чередуйте вверх и влево . Чтобы это работало как можно дольше,
4
в правом нижнем углу появляются новые s.РЕДАКТИРОВАТЬ: Я добавил жестко запрограммированный переключатель, чтобы несколько раз перейти прямо на определенные этапы непосредственно перед концом, что на самом деле позволяет мне достичь 1024. Хотя это немного выходит из-под контроля, поэтому я остановлюсь на этом сейчас и Подумайте о лучшем подходе завтра. (Честно говоря, тот факт, что я могу увеличить свой счет в 4 раза, добавив взломанные вручную хаки, говорит мне лишь о том, что моя стратегия - дерьмо.)
Это доска, на которой вы играете
источник