Ваше завдання - імітувати математично досконалу гру 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-х)