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)
źródło
Odpowiedzi:
Ruby, Into the Corner, wynik: 3340
Oto bardzo prosta strategia rozpoczęcia tego. Mam pomysł na (prawie) idealny wynik, ale mam problem z sformalizowaniem go, więc tutaj jest coś prostego, aby zacząć.
Ta
advance
funkcja jest tą, o którą prosisz. Pobiera tablicę jako tablicę 1d i zwraca tablicę po odrodzeniu kafelka i po wykonaniu ruchu.Możesz to przetestować za pomocą tego fragmentu
Strategia jest bardzo prosta i właśnie tę przeskoczyłem do 128, kiedy sam grałem w 2048: po prostu na przemian w górę i w lewo . Aby działało to tak długo, jak to możliwe, nowe
4
s pojawiają się w prawym dolnym rogu.EDYCJA: Dodałem przełącznik zakodowany na stałe, aby przejść kilka razy w prawo na określonych etapach tuż przed końcem, co faktycznie pozwala mi osiągnąć 1024. To jednak wymyka się spod kontroli, więc na razie przestanę pomyśl o ogólnie lepszym podejściu jutro. (Szczerze mówiąc, fakt, że mogę zwiększyć swój wynik 4-krotnie poprzez dodanie ręcznie modyfikowanych hacków, mówi mi tylko, że moja strategia to bzdury.)
To jest plansza, na której kończysz
źródło