EDITAR: Recientemente, mi pregunta ha sido propuesta como un duplicado de 2048 Bot Challenge . Me gustaría enfatizar que esta pregunta es diferente de esa pregunta, y requeriré que las respuestas sean pensadas de manera diferente a esa pregunta. 2048 Bot Challenge le pidió al usuario que creara un bot, y se ejecutaría durante una hora, siendo la puntuación más alta la puntuación del usuario. Además, tenía un límite de 555 bytes. Mi desafío ejecuta el código con mucha menos frecuencia, solo 3 veces. Su puntaje se calcula usando el puntaje promedio de esas tres veces y dividiéndolo por la longitud del carácter de su código de golf. Mi pregunta alienta a las entradas a ser "más inteligentes" y no intentar obtener el puntaje más alto por fuerza bruta.
-
EDITAR: El método get se cambió a getTile, para evitar conflictos con la palabra clave JS get. Además, se agregó una sección de puntaje alto.
Recientemente, creé un sitio que permite controlar el popular juego 2048 usando JavaScript. Mi sitio está vinculado aquí:
Cómo:
Un As Editor está ubicado sobre el tablero. Coloca el código en él, que se ejecuta una vez cada 250 ms, o 4 veces por segundo. Esto se llama ciclo.
Use los siguientes métodos para controlar el tablero. No puedes usar las teclas de flecha.
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
Las siguientes variables se definen para su conveniencia:
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
Reglas:
- Sin aleatoriedad, debes usar la lógica. (Sí, sé que el código de ejemplo usa al azar).
- Sin engancharse a las funciones del juego o hacer trampa de otras maneras
- En general, intente llamar solo a un método de movimiento por ciclo. Está bien si usa más, pero se atornilla con la animación.
- El tablero debe comenzar en un estado aleatorio, sin modificación del estado previo al juego
- Debe proporcionar tanto la versión sin comprimir como la versión golfizada del código en su publicación.
- Debe proporcionar un enlace al sitio que ya carga la versión sin comprimir de su código, que se sirve a través de PasteBin (por ejemplo, ... thatcoolidea.com/2048?i=pH18GWtu carga el código de ejemplo).
Puntuación:
- Tu código será calificado por mí.
- La parte A de su puntaje es un promedio de 3 ejecuciones del código, redondeadas hacia abajo.
- La Parte B de su puntaje es la longitud de los caracteres de su código de golf.
- Su puntaje final es la Parte A dividida por la Parte B
El ganador tendrá su código inmortalizado como el código de ejemplo en el sitio, si así lo elige, y será reconocido en un comentario en el código.
¡Buena suerte! Espero que disfrutes el desafío.
Puntaje alto actual 225.22 - Congelador - user3217109