Au départ, je voulais appeler ce post «un jeu en 0 lignes de HTML, JS et CSS», inspiré de
ce post , mais ce serait trop fort. D'une manière ou d'une autre, détériorant considérablement l'UX, j'ai eu du tic-tac-toe, fonctionnant exclusivement par la puissance du protocole DNS.

Pour un utilisateur non préparé, cela semble bien sûr effrayant, mais même un navigateur n'est pas nécessaire pour le jeu.
Pour entrer dans le jeu, vous devez exécuter une commande qui implique d'accéder à mon serveur DNS:
$ dig @ns.f1remoon.com game.f1remoon.com. TXT
J'ai également fait un peu d'aide, qui est disponible dans les enregistrements TXT pour le domaine
help.game.f1remoon.com
:

Comment ça marche?
Au début, j'ai essayé de configurer correctement bind9, mais j'ai été très déçu: l'ordre d'émission des enregistrements TXT était aléatoire. Bien sûr, cela a apporté un peu d'exotisme au jeu, mais c'était absolument inacceptable. J'ai dû abandonner l'idée et me tourner vers un serveur DNS auto-écrit. Armé du désir d'apprendre quelque chose de nouveau, j'ai pris golang et la bibliothèque DNS Go et j'ai obtenu un serveur simple, pas très différent des exemples.
Le prochain défi était toutes les combinaisons du jeu. Voici un grand merci à
Sirion : j'ai pris ses fichiers html et les ai traduits dans un format que j'aimais.
Étant donné que la commande dig, contrairement au navigateur, ne stocke pas l'URL et ne permet pas de fouiller dans le champ, l'utilisateur devra laisser cela. Pour le jeu, le champ était marqué comme pavé numérique:
7 8 9 4 5 6 1 2 3
Lorsque vous demandez un coup, vous devez toujours donner l'historique complet des coups à l'opposé, par exemple, la commande pour le troisième coup dans la cellule «9» ressemblera à ceci:
$ dig @ns.f1remoon.com 9.4.5.game.f1remoon.com. TXT
Conclusion complète de trois mouvements $ dig @ns.f1remoon.com 5.game.f1remoon.com. TXT ; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> @ns.f1remoon.com 5.game.f1remoon.com. TXT ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12656 ;; flags: qr rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;5.game.f1remoon.com. IN TXT ;; ANSWER SECTION: 5.game.f1remoon.com. 0 IN TXT "o" "_" "_" 5.game.f1remoon.com. 0 IN TXT "_" "x" "_" 5.game.f1remoon.com. 0 IN TXT "_" "_" "_" ;; Query time: 135 msec ;; SERVER: 159.65.145.145
Référentiel avec code:
github.com/Firemoon777/tic-tac-toe-dnsUPD:
Prototik suggère d'utiliser une option plus pratique pour le jeu avec la touche + court:
$ dig +short TXT @ns.f1remoon.com 9.4.5.game.f1remoon.com. "o" "_" "x" "x" "x" "o" "o" "_" "_"