Ok, donc en fait ce sont tes coordonnées X qui sont mal formulé. Pour mieux comprendre ton code, il faut que X et Y correspondent aux coordonnées comme tu l'a dis (X;Y), c'est à dire compris entre 1 et 3. En gros ce qu'il faut faire c'est un mini tilemapping, sauf qu'ici on utilisera des cercles e des ronds. Pour simplifier les choses, les coordonnées de X et Y seront entre 0 et 2 (tu verra pourquoi). En gros, avant chaque affichage en fonction de X et Y, il faudra faire un calcul du genre X*22+31=>X, et à la fin X-31/22 (c'est ce que tu avais commencé à peu près à faire). Le déplacement est donc à peu près similaire :
:(getKey(3) and (X≠2))-(getKey(2) and (X≠0))+X→X
:(getKey(1) and (Y≠0))-(getKey(4) and (Y≠2))+Y→Y
Lorsqu'on appuie sur la touche pour jouer :
:If getKey(33) and ({Y*3+X+L1}=0)
:T=>{Y*3+X+L1}
:End
Et pour afficher après c'est à peu près la même chose que le tilemapping :
:For(Y,0,2)
:For(X,0,2)
:X*22+31=>X
:If T
:.Cercle
:Else!If T
:.Carre
:End
:X-31/22=>X
:End
:End
Si ton programme se quitte de temps en temps, c'est que dans ta boucle principale tu as autorisé la touche "0" pour le quitter :
:Repeat getKey(15) or getKey(33)
Voili voilou, tu me redis si ça ne marche toujours pas.
PS : C'est marrant, c'est en faisant un programme de morpion que j'ai appris l'astuce 1-T=>T, c'est là que c'est très puissant.