Twoim zadaniem jest symulacja matematycznie doskonałej gry z 2048 roku. Chodzi o to, aby znaleźć teoretyczną górną granicę zasięgu gry 2048 i znaleźć drogę do niej.
Aby dowiedzieć się, jak to wygląda, graj z tym klonem 2x2 i spróbuj zdobyć 68 punktów. Jeśli to zrobisz, skończysz z kafelkami 2, 4, 8 i 16. Nie można przejść dalej.
Twoje zadanie jest łatwiejsze, ponieważ możesz wybrać miejsce odradzania się płytek i ich wartości, tak jak ten klon .
Musisz napisać program lub funkcję, która akceptuje tablicę 2048 jako dane wejściowe i wyprowadza tablicę z odrodzoną płytką oraz tablicę po złożeniu płytek. Na przykład:
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
Twój program będzie wielokrotnie zasilany własnym wyjściem, aby zasymulować całą grę z 2048 roku. Pierwszym wejściem programu będzie pusta plansza. Musisz odrodzić na nim jeden kafelek, w przeciwieństwie do dwóch kafelków oryginalnej gry. Na ostatnim etapie gry nie będziesz mógł się poruszyć, więc dwie plansze wyjściowe mogą być identyczne.
Musisz oczywiście wysyłać tylko legalne ruchy. Odradzają się tylko 2 lub 4, musisz przenieść lub zwinąć przynajmniej jeden kafelek w ruchu itp.
Celowo sprawiłem, że wymagania dotyczące danych wejściowych i wyjściowych były niejasne. Możesz wybrać format wejścia i wyjścia. Możesz używać macierzy, tablic, ciągów znaków lub cokolwiek chcesz. Tak długo, jak można z nimi symulować grę 2048, twoje dane wejściowe i wyjściowe są w porządku.
Zwycięzcą zostanie ten, który zakończy grę z największą sumą płytek na planszy, a następnie z najmniejszą liczbą bajtów w kodzie źródłowym. Punktacja z oryginalnej gry nie będzie brana pod uwagę. (Wskazówka: użyj 4)