Bonsoir.
Je ne sais pas si j'aurais le temps d'inscrire une IA au concours, probablement pas, même si en fait j'en ai déjà écrit une de mon côté dans le cadre d'un projet que je mène depuis 6 ans, mais que je participe ou non au final, j'ai quand même envie d'apporter mon petit grain de sel.
Comme quelques avis précédents, je pense que si les dominos n'ont pas été vraiment étudiés, c'est principalement parce qu'il y a énormément de variantes dans les règles, parce qu'il n'existe pas un seul jeu de dominos, et parce qu'aucune combinaison de jeu et variante ne s'est spécialement imposée.
Le double-six à 28 pièces et 2 à 4 joueurs est la plus simple, mais on peut jouer avec des double-neuf et des double-douze; permettre ou non de dédoubler les chaînes quand on joue un double; obliger à jouer si on le peut; jouer avec des tas de variantes plus compliquées mais ô combien plus intéressantes comme le train mexicain, ou les dominos 2D ou en triangle…
L'avantage d'avoir choisi ce jeu c'est quand même qu'il n'y a pas déjà de route toute tracée pour coder une bonne IA.
Comme autre jeu intéressant à essayer, j'aurais bien proposé le tarot.
Sur la forme par contre: vouloir faire du websocket, c'est cool, c'est moderne ! Par contre ça ferme la porte à beaucoup plus de monde que ce que vous croyez.
Ce serait quand même beaucoup plus simple pour tout les participants si le programme maître faisait du classique stdin/stdout; ça a l'énorme avantage d'être universel, pour tous niveaux, tous langages, et accessoirement ça pourrait éviter qu'un petit malin essaie de pirater le serveur (on ne sait jamais, je sais pas vous mais moi personnellement je suis méfiant).
Bref ça ouvre le challenge à plus de monde, d'autant plus que sur un projet comme ça, on n'a pas envie de se prendre la tête avec de l'I/O ou une bibliothèque qu'on ne maîtrise pas bien, donc le protocole le plus simple sera le meilleur.
Ah, et, à part ça, évidemment qu'on doit pouvoir tourner les dominos. Sinon le jeu n'a absolument aucun intérêt.
Rajouts:
Le problème des Sockets normales c'est qu'elles sont à sens unique. On reçoit ou on envoie.
C'est faux, les sockets TCP sont en full duplex.
Edit : Et du coup, je galère pas, mais toi oui !
Normalement dans un challenge comme ça, ce n'est pas aux participant de se faire ch### avec la communication, mais bien au programme maître. Être gêné par des problèmes d'I/O à la con en tant que participant ne donne pas envie d'aller jusqu'au bout. Je suis certain que les websockets en rebutent plus d'un, et même les sockets TCP normaux. Après à vous de voir quel public et quels buts vous visez mais à mon avis il est important de garder à l'esprit que c'est un challenge pour coder une IA, pas pour apprendre à faire du websocket.