Voici le code de l'interface link pour les programmes en TI-Basic (commenté, en plus

partie est finie !
©©© on efface éventuellement les variables qui ne servent plus
EndPrgm
, alors profitez-en !), avec quelques sections à compléter par vos soins (marquées par ©©©) :IA()
Prgm
©©© on demande à l'utilisateur si l'IA est le joueur 1 ou 2 (variable num_play)
© il faut lancer le joueur 1 avant le joueur 2 pour la synchronisation
If num_play=1 Then
GetCalc colonne © on attend que le joueur 2 soit prêt
©©© on teste éventuellement si colonne vaut bien 0 (facultatif)
init() © sous-programme d'initialisation qui prépare tout ce qu'il faut pour commencer une partie
© (grille vide, matrices de pré-traitement, etc.)
calcul() © calcul du premier demi-coup de la partie
Else
init() © initialisation
0->colonne © pour prévenir le joueur 1 que l'on est prêt
EndIf
While colonne<8
SendCalc colonne © on envoie à l'adversaire le coup que l'on a décidé de jouer
GetCalc colonne © on attend la réponse de l'adversaire
check() © on vérifie le demi-coup adverse
EndWhile
© la
check()
Prgm
If colonne>7 Then © l'adversaire dit que la partie est finie (colonne vaut 8, 9 ou 10)
18-colonne->colonne © si un joueur gagne, l'autre perd, et réciproquement ...
SendCalc colonne © on annonce à l'adversaire son résultat pour accuser réception
Return © on a toujours colonne>7, donc on sortira bien de la boucle While
EndIf
©©© si on voit que l'adversaire vient de gagner
8->colonne © l'adversaire gagne, la partie est finie
SendCalc colonne © on le lui dit
GetCalc colonne © on attend l'accusé de réception de fin de partie
Return © l'accusé de réception se fait avec colonne=10, donc on sortira bien de la boucle While
©©© si on voit que l'adversaire vient de remplir la 42e case
© (sans gagner, forcément, sinon on serait dans le cas précédent)
9->colonne © match nul, la partie est finie
SendCalc colonne © on le lui dit
GetCalc colonne © on attend l'accusé de réception de fin de partie
Return © l'accusé de réception se fait avec colonne=9, donc on sortira bien de la boucle While
©©© si on voit que l'adversaire vient de jouer un coup invalide (colonne déjà pleine, etc.)
10->colonne © l'adversaire perd, la partie est finie
SendCalc colonne © on le lui dit
GetCalc colonne © on attend l'accusé de réception de fin de partie
Return © l'accusé de réception se fait avec colonne=8, donc on sortira bien de la boucle While
calcul() © la partie n'est pas finie, on peut donc déterminer le prochain demi-coup à jouer
EndPrgm
Les fonctions init() et calcul() correspondent au coeur de votre IA, je vous laisse donc vous débrouiller avec

!
L'IA se lance avec IA() (sans blague

!).
Je pense que la conversion en C ne vous posera pas vraiment de problème, et si quelqu'un la fait et la poste ici, je pense que tout le monde sera content

!
@++