EDIT: Di recente, la mia domanda è stata proposta come duplicato del 2048 Bot Challenge . Vorrei sottolineare che questa domanda è diversa da quella e richiederà che le risposte siano pensate diversamente da quella domanda. 2048 Bot Challenge ha chiesto all'utente di creare un bot, che sarebbe stato eseguito per un'ora, con il punteggio più alto è il punteggio dell'utente. Inoltre, aveva un limite di 555 byte. La mia sfida esegue il codice molto meno frequentemente, solo 3 volte. Il tuo punteggio viene calcolato usando il punteggio medio di quelle tre volte e dividendolo per la lunghezza dei caratteri del tuo codice golf. La mia domanda incoraggia le voci a essere "più intelligenti" e non cercare di ottenere il punteggio più alto con la forza bruta.
-
EDIT: il metodo get è stato modificato in getTile, per evitare conflitti con la parola chiave JS get. Inoltre, è stata aggiunta una sezione con punteggio elevato.
Di recente, ho creato un sito che consente di controllare il popolare gioco 2048 tramite JavaScript. Il mio sito è collegato qui:
Come:
Un Ace Editor si trova sopra il tabellone. Si inserisce il codice al suo interno, che viene eseguito una volta ogni 250 ms o 4 volte al secondo. Questo si chiama ciclo.
Utilizzare i seguenti metodi per controllare la scheda. Non puoi usare i tasti freccia.
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
Le seguenti variabili sono definite per comodità:
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
Regole:
- Nessuna casualità, è necessario utilizzare la logica. (Sì, so che il codice di esempio usa random.)
- Non agganciarsi alle funzioni di gioco o imbrogliare in altri modi
- In genere, prova a chiamare un solo metodo di spostamento per ciclo. Va bene se ne usi di più, ma si avvita con l'animazione
- Il tabellone deve iniziare in uno stato casuale, nessuna modifica dello stato pre-partita
- Nel tuo post devi fornire sia la versione non compressa che la versione golfizzata del codice.
- È necessario fornire un collegamento al sito che carica già la versione non compressa del codice, fornita tramite PasteBin (ad esempio, ... thatcoolidea.com/2048?i=pH18GWtu carica il codice di esempio.)
punteggio:
- Il tuo codice verrà segnato da me.
- La parte A del tuo punteggio è una media di 3 esecuzioni del codice, arrotondate per difetto.
- La parte B del tuo punteggio è la lunghezza dei caratteri del tuo codice golf.
- Il tuo punteggio finale è la parte A divisa per la parte B.
Il vincitore avrà il proprio codice immortalato come codice di esempio sul sito, se lo desidera, e riconosciuto in un commento nel codice.
In bocca al lupo! Spero ti piaccia la sfida.
Punteggio massimo attuale 225.22 - Congelatore - user3217109