EDYCJA: Ostatnio moje pytanie zostało zaproponowane jako duplikat 2048 Bot Challenge . Chciałbym podkreślić, że to pytanie różni się od tego pytania i wymaga przemyślenia odpowiedzi inaczej niż to pytanie. 2048 Bot Challenge poprosił użytkownika o utworzenie bota, który będzie uruchamiany przez godzinę, przy czym najwyższy wynik to wynik użytkownika. Dodatkowo miał limit 555 bajtów. Moje wyzwanie uruchamia kod znacznie rzadziej, tylko 3 razy. Twój wynik jest obliczany na podstawie średniego wyniku z tych trzech razy i podzielenia przez długość znaków kodu golfowego. Moje pytanie zachęca wpisy do bycia „mądrzejszymi” i nie próbowania uzyskiwania najwyższego wyniku brutalną siłą.
-
EDYCJA: Metoda get została zmieniona na getTile, aby uniknąć konfliktu ze słowem kluczowym JS get. Dodatkowo dodano sekcję z wysokim wynikiem.
Niedawno stworzyłem witrynę, która pozwala kontrolować popularną grę 2048 za pomocą JavaScript. Moja witryna jest połączona tutaj:
W jaki sposób:
Edytor asów znajduje się nad planszą. Umieszczasz w nim kod, który jest uruchamiany raz na 250 ms lub 4 razy na sekundę. To się nazywa cykl.
Użyj następujących metod do sterowania tablicą. Nie możesz używać klawiszy strzałek.
up(); //move up
down(); //move down
left(); //move left
right(); //move right
move(integer); //integer is a direction. 0:up,1:right,2:down,3:left
getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram
Dla Twojej wygody zdefiniowano następujące zmienne:
eother //boolean, alternates every cycle
frozen //integer, counts how many cycles the board has remained stationary
lastDir //integer, indicates the last direction that was tried to move in
//uses same format as the move method above.
startup //boolean, will always be true when the game first starts
//you can change it as you wish
a
b //a b and c are all persistant variables, they do not change each cycle
c //any other variables defined in the cycle will be reset every time
Zasady:
- Bez przypadkowości, musisz użyć logiki. (Tak, wiem, że przykładowy kod używa losowo).
- Żadnego zaczepiania się w funkcje gry ani oszukiwania w inny sposób
- Ogólnie rzecz biorąc, spróbuj wywołać tylko jedną metodę ruchu na cykl. Jeśli używasz więcej, jest w porządku, ale wkręca się w animację
- Plansza musi rozpocząć się w losowym stanie, bez modyfikacji stanu sprzed gry
- W swoim poście musisz podać zarówno nieskompresowaną, jak i golfową wersję kodu.
- Musisz podać link do strony, która już ładuje nieskompresowaną wersję twojego kodu, udostępnianą przez PasteBin (na przykład ... thatcoolidea.com/2048?i=pH18GWtu ładuje przykładowy kod).
Punktacja:
- Twój kod zostanie oceniony przeze mnie.
- Część A twojego wyniku to średnio 3 serie kodu, zaokrąglone w dół.
- Część B twojego wyniku to długość znaków twojego golfowego kodu.
- Twój końcowy wynik to Część A podzielona przez Część B
Zwycięzca zostanie unieśmiertelniony jako przykładowy kod na stronie, jeśli sobie tego życzy, i potwierdzony w komentarzu do kodu.
Powodzenia! Mam nadzieję, że podoba Ci się wyzwanie.
Aktualny najlepszy wynik 225,22 - Zamrażarka - użytkownik3217109