yugos a écrit :
bon ben ethaniel moi j'ai fini mon ia de puissance 4.

Vraiment ? Chapeau !
Perso, j'espère pouvoir terminer ma première IA (avec une algorithmie classique) d'ici 2023

...
Plus sérieusement, le temps libre me manque énormément.
quand a ton arbitre je suis pas convaincu.
poste la source de ton arbitre pour que je change mon code en consequence.
J'espère donc que voir mon arbitre à l'oeuvre de convaincra un petit peu plus

!
Par contre, comme je l'ai déjà expliqué, mon arbitre détecte les alignements avec une méthode optimisée qui, de par sa spécificité, est à la base même de mes IA (ou plutôt, pour ma seconde IA, 'qui sera' #vapor#

).
La politique de non-prémâchement de code et de méthode allant à l'encontre d'une sortie publique anticipée (comprendre 'avant les confrontations'), j'ai donc commencé à le reprogrammer avec un algo beaucoup plus basique, tout en y intégreant des features au passage ...
Au risque de
me répéter, j'espère pouvoir rendre disponible la version finale (en TI-Basic) d'ici fin décembre, mais je ne promets rien

...
Mais j'ai déjà expliqué comment rendre ton IA compatible avec mon arbitre : savoir lire (le demi-coup venant d'être joué par l'adversaire) et écrire (le demi-coup que ton IA décide de jouer) dans une variable TI nommée
colonne, et garder une trace de la partie en cours pour les périodes où le programme ne tourne pas.
parce qu'il est difficile de faire un code sans savoir comment est le coup de l'adversaire.
Le demi-coup que vient de jouer ton adversaire est indiqué dans ta propre variable
colonne (c'est-à-dire celle qui est dans ton répertoire).
Deuxio tu semble n'avoir pas saisie le probleme soulevé par pollux
Mais demander à un programme de gerer l'evolution du jeu en se redemarant à chaque tour (puiskil va etre lance tous les demi coup n'est vraiment pas pratik et ce sans prendre le moindre argument) d'autant plus qu'il pose des probleme d'adresse de pointeurs.
genre l'evolution du jeu "game_state" doit etre conserver à chaque tour d'autre probleme se pose comme tu fois le savoir à la fin de partie toutes la memoire utilisé par un programme en c doit etre liberer.
Sans le moindre argument : l'argument, c'est la variable
colonne ...
Oui, je sais qu'un programme en C (et en n'importe quel langage, d'ailleurs) doit libérer toute la mémoire utilisée lorsqu'il se termine (sauf un hook, évidemment).
C'est pourquoi, en TI-Basic, j'utilise des variables TI de base (enregistrée
extérieurement au programme) pour garder une trace de ce qui se passe pendant que l'IA ne tourne pas.
D'ailleurs, vous ne m'avez toujours pas répondu clairement sur la possibilité de gérer ces variables en C ...
Or tu proposes que ce soit ton arbitre qui gere la detection de la victoire.Il y a d'autre chose qui pose problemes...
de + l'interetde ton arbitre est limité il complik enoremement la gestion de la partie et la gestion des variables.
Franchement, je ne trouve pas : lorsqu'une IA est lancée, elle lit l'état de la partie juste après son dernier demi-coup, elle lit la réponse de l'adversaire, elle réfléchit, elle enregistre sa réponse dans une variable, et elle s'arrête jusqu'à ce que se soit de nouveau son tour ...
Vraiment, je ne vois pas du tout comment faire plus simple que cela.
Comme l'as fait remarqué pollux, si c'est pour verifier qu'aucun programme ne triche (un peu parano) la meilleur solution est tous simplement de reporter les coups ainsi on en sera sur. Ca permet à chacun de faire la gestion de la partie comme il l'entends, c'est universel du moment que tous le monde dessine une grille 7*6.
Ce n'est pas pour vérifier qu'aucun programme ne triche (c'est impossible), c'est pour faire s'affronter 2 IA sur la même calculatrice alors qu'il est impossible de faire tourner 2 programmes en même temps.
en plus ce system n'est pas lourd du tout contrairement a ce que tu pense.2 ou 3 partie suffiront à departager une ia puisque de toutes facon aucune des deux n'est aptes à apprendre sur ses defaites.
Faux ... ma seconde IA sera du type 'réseau de neurones formels', avec une matrice synaptique optimisée par algorithmes génétiques.
Surtout il n'y a pas enormement de participants ca sera vite fait de departager les ia.
Ca, c'est bien vrai

...
Ps: pour te montrer que je ne fais pas preuve de muavaise volonté j veux bien voir comment arranger mon code pour qu'il soit compatible avec ton interface mais dans ce cas la post ta source.
Plutôt que de décortiquer l'arbitre, il te sera plus simple de lire le
comportement que devront avoir les IAs.
Mais bon je ne te cache qu'elle n'est vraiment pas lumineuse ton idee.
Désolé, mais c'est la seule que j'aie trouvée pour faire s'affronter 2 IA en TI-Basic (et j'insiste sur le langage) sans autre action de l'opérateur humain que le lancement de la partie (sauf éventuellement configurer certains paramètres).
Si tu as une autre proposition, je suis preneur ...
@++