EDIT: Récemment, ma question a été proposée comme un double de 2048 Bot Challenge . Je voudrais souligner que cette question est différente de cette question et nécessitera que les réponses soient pensées différemment de cette question. 2048 Bot Challenge a demandé à l'utilisateur de créer un bot, et il serait exécuté pendant une heure, le score le plus élevé étant le score de l'utilisateur. De plus, il avait une limite de 555 octets. Mon défi exécute le code beaucoup moins fréquemment, seulement 3 fois. Votre score est calculé en utilisant le score moyen de ces trois fois et en divisant par la longueur des caractères de votre code joué. Ma question encourage les entrées à être «plus intelligentes» et à ne pas essayer d'obtenir le meilleur score par la force brute.
-
EDIT: La méthode get a été changée en getTile, pour éviter la confluence avec le mot clé JS get. De plus, une section de score élevé a été ajoutée.
Récemment, j'ai créé un site qui permet de contrôler le jeu populaire 2048 en utilisant JavaScript. Mon site est lié ici:
Comment:
Un éditeur Ace est situé au-dessus du plateau. Vous y insérez du code, qui est exécuté une fois toutes les 250 ms, ou 4 fois par seconde. C'est ce qu'on appelle un cycle.
Utilisez les méthodes suivantes pour contrôler la carte. Vous ne pouvez pas utiliser les touches fléchées.
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
Les variables suivantes sont définies pour votre commodité:
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
Règles:
- Pas de hasard, vous devez utiliser la logique. (Oui, je sais que l'exemple de code utilise aléatoire.)
- Pas d'accrochage aux fonctions de jeu ni de tricherie autrement
- En règle générale, essayez d'appeler une seule méthode de déplacement par cycle. C'est OK si vous en utilisez plus, mais ça se visse avec l'animation
- Le plateau doit commencer dans un état aléatoire, aucune modification de l'état d'avant-match
- Vous devez fournir à la fois la version non compressée et la version golfée du code dans votre message.
- Vous devez fournir un lien vers le site qui charge déjà la version non compressée de votre code, diffusé via PasteBin (par exemple, ... thatcoolidea.com/2048?i=pH18GWtu charge l'exemple de code.)
Notation:
- Votre code sera marqué par moi.
- La partie A de votre score est une moyenne de 3 exécutions du code, arrondies vers le bas.
- La partie B de votre score est la longueur des caractères de votre code golfé.
- Votre score final est la partie A divisée par la partie B
Le gagnant verra son code immortalisé comme l'exemple de code sur le site, s'il le souhaite, et reconnu dans un commentaire dans le code.
Bonne chance! J'espère que vous apprécierez le défi.
Score actuel actuel 225,22 - Congélateur - user3217109