Mais bon, généralement les bibliothèques pour faire des WebSockets facilitent la tâche : on se connecte à l'adresse, on reçoit les messages dans un callback et on en envoie grâce à une méthode. Dans la plupart des langages je pense que ça tient en même pas 100 lignes, et si la bibliothèque a une doc un minimum bien faite, ça peut être fait vraiment vite, même si on n'y comprends pas grand chose.
Ce n'est peut-être pas totalement faux, mais tu fais quoi :
- Des gens qui programment en C/C++ et qui auraient le niveau pour faire une IA mais qui sont complètement bloqués simplement parce que tu imposes les websockets, ou même les sockets TCP. Non je n'ai pas pris le C++ au hasard.
- Des débutants en programmation qui n'ont peut-être jamais fait ou encore trop peu de programmation réseau
Au risque de me répéter, il faut savoir qu'est-ce qu'on vise: réfléchir sur un jeu et apprendre à coder une IA, ou bien apprendre à faire des applications réseau avec des websocket ?
J'ai codé moi-même un client websocket en C++ et un serveur Java et sans bibliothèque externe. Ce n'est pas si compliqué que ça même si je me suis bien amusé à éplucher la doc du W3C, mais en même temps ça fait 15 ans que j'ai commencé à faire de la programmation en amateur.
Je pense à ceux qui veulent juste s'amuser et confronter leurs idées sans se prendre la tête. Et clairement, imposer les websockets, pour la plupart des participants probablement, c'est une prise de tête inutile dont ils se passeraient bien
Je me répète encore une fois, mais c'est le programme maître qui doit absorber toute la compexité de la communication. Les clients, eux, doivent être très simples du point de vue communication, et ne se concentrer que sur le coeur de leur métier: leur stratégie
Je précise aussi qu'on a le droit de faire équipe, ce qui peut permettre par exemple de travailler avec quelqu'un qui s'y connaît en WebSockets si on y comprends rien.
Les équipes c'est bien beau, mais mettre un trop « bon » avec un trop « mauvais », souvent, ça ne marche pas bien.
Dans le rôle du mauvais, on a intérêt à apprendre de plus fort que soi, mais si l'autre est trop fort, alors on le saoule plus qu'autre chose !
Autre gros problème ici avec ta proposition d'équipe: le mec qui s'y connaît en websocket, c'est un bouche trou ?
Tel que je l'imagine, ce qui risque de se passer c'est qu'une seule des deux personnes ne s'amuse réellement !
Soit on a quelqu'un qui s'en contrefout de l'IA, mais alors il ne prendra pas de plaisir à participer même avec quelqu'un d'autre.
Ou alors on a un mec qui est autant intéressé par les websockets que par l'IA, auquel cas il participera tout seul. Retour à la case départ.
Tu proposes un challenge 'une IA de tarot' … je ne pense pas que ce soit raisonnable. Développer une IA de tarot à temps perdu le soir en sortant de la fac ou du boulot … Si quelqu'un sait faire ça, alors chapeau !
Je ne pense pas non plus qu'il puisse y avoir une IA parfaite à ce genre de jeu; c'est sûrement le cas pour à peu près tous les jeux de cartes. IL y a trop de suppositions à faire sur qui possède quoi en fonction de ce qui a ou n'a pas été joué à un instant T.
Mais c'est ça qui est intéressant aussi. Un challenge sur le puissance 4 n'a au contraire plus grand intérêt, puisqu'on a déjà un algorithme imbattable et mathématiquement démontré que celui qui commence gagne.
J'ai aussi déjà fait une petite IA de tarot. Globalement elle est assez nulle et simple à battre, je ne suis pas du tout allé au fond de tout ce que j'aurais pu faire, mais elle a déjà joué 6000 parties contre des humains, donc elle ne doit quand même pas être si pourrie que ça.
Sinon, il y a quand même une idée à tirer de tout ça, c'est le jeu en duplicate. Dans les compétitions de tarot ou de bridge, ou même de scrabble, les joueurs jouent en duplicate : en gros : la même distribution est jouée une fois par l'équipe A contre l'équipe B, et plus tard, par l'équipe B contre l'équipe A.
Je mets un gros +1 à ça. C'est effectivement un très bon moyen de 1/avoir des parties reproductibles, 2/comparer et comprendre ce qui marche ou pas, et 3/juger impartialement la force d'une IA en évitant la part de hasard qu'il y a dans la distribution.
Ca pourrait effectivement très bien s'appliquer aux dominos, qui peuvent aussi se jouer en équipes d'ailleurs