Poster un nouveau sujet Poster une réponse
Fin de programme
Auteur Message
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Ven 03 Fév 2012, 18:00   Citer 

Bonjour. J'ai créé un jeu de morpion de maniere un peu arnachique comme vous allez le voir ^^ Je n'arrive pas a faire en sorte que la calculatrice reconnaisse le gagnant meme en ayant trouver une partie de code intéréssante sur ce forum ^^

Voici mon code :

Code
effecr
programme qui remet le graph en place
{3,3}->dim([J]
remplir(0,[J]
ligne(20,0,20,-62
ligne(40,0,40,-62
ligne(60,0,60,-62
ligne(0,-20,60,-20
ligne(0,-40,60,-40
22->A:-22->B:16->c:-38->D:0->N
texte(1,80,"J1
lbl 1
repeat K=105
ligne(A,B,A+C,B
ligne(A,D,A+C,D
ligne(A,B,A,D
ligne(A+C,B,A+C,D
codetouche->K
if K=24:then
ligne(A,B,A+C,B,0
ligne(A,D,A+C,D,0
ligne(A,B,A,D,0
ligne(A+C,B,A+C,D,0
A-20->A
end
if K=26:then
ligne(A,D,A+C,D,0
ligne(A,B,A+C,B,0
ligne(A,B,A,D,0
ligne(A+C,B,A+C,D,0
A+20->A
End
If K=34:then
ligne(A,B,A+C,B,0
ligne(A,D,A+C,D,0
ligne(A,B,A,D,0
ligne(A+C,B,A+C,D,0
B-20->B:D-20->D
End
If K=25:then
ligne(A,B,A+C,B,0
ligne(A,D,A+C,D,0
ligne(A,B,A,D,0
ligne(A+C,B,A+C,D,0
B+20->B:D+20->D
end
end
ligne(A,B,A+C,B,0
ligne(A,D,A+C,D,0
ligne(A,B,A,D,0
ligne(A+C,B,A+C,D,0
If A=2:1->X
If A=22:2->X
If A=42:3->X
If B=-2:1->Y
If B=-22:2->Y
If B=-42:3->Y
N+1->N
If N=1 ou N=3 ou N=5 ou N=7 ou N=9:then
1->T
ligne(A,B,A+C,D
ligne(A,D,A+C,B
1->[J](Y,X):[J]
goto 2
lbl 3
texte(1,80,"J2
end
If N=2 ou N=4 ou N=6 ou N=8:then
(A+A+C)/2->E:(B+D)/2->F
cercle(E,F,7
2->T
2->[J](Y,X):[J]
goto 2
lbl 4
texte(1,80,"J1
end
goto1
lbl 2            ->c'est la ou il y a un pb
For(H,1,3
For(G,1,2
If [J](H,1)=G et[J](H,2)=G et [J](H,3)=G ou [J](1,H)=G et [J](2,H)=G et [J](3,H)=G ou [J](1,1)=G et [J](2,2)=G et [J](3,3)=G ou [J](1,3)=G et [J](2,2)=G et [J](3,1)=G:then
effecr
disp "OWNED BY","JOUEUR",T
goto 5
else
if T=1:goto 3
if T=2:goto 4
end
end
lbl 5
disp " "
end



en espérant que je n'ai pas fait de fautes^^
vos solutions seront les bienvenues et m'aidera beaucoup puisque j'ai aussi fait un puissance 4 ou il manque cette partie ^^

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Ven 03 Fév 2012, 18:35   Citer 

Si cette partie du programme ne s'affiche pas, c'est que le programme ne va pas jusqu'au lbl 2.
Aussi je te conseil de revoir soit les conditions dans la ligne "If N=2 ou N=4 ou N=6 ou N=8:then" soit à rajouter un end avant le goto 2.

Sangohan38

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 03 Fév 2012, 21:46   Citer 

Enlève le End tout à la fin.
Le problème est que tu utilises des Goto sans refermer les boucles donc un End de trop ramène à pétaouch'nok.

[J](H,1)=G et [J](H,2)=G et [J](H,3)=G
[J](H,1)[J](H,2)[J](H,3)=G^3
Ce changement est valide dans ce cas particulier car G vaut 1 ou 2.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Sam 04 Fév 2012, 13:59   Citer 

merci pour vos reponses et linkakro pour le raccourci ^^
sinon je peux mettre un end devant le goto 2 et la boucle continue, mais si j'en met 2 devant les 2 goto 2 la boucle se finit...

apres le message s'affiche par exemple quand toute la ligne du haut est remplie mais pas dans d'autres situations comme la colonne du milieu

 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Dim 05 Fév 2012, 12:44   Citer 

J'ai fait quelques changements ^^ au niveau de la condition de N et la structure puisque il y a moins de lbl maintenant.


Code
effecr
 programme qui remet le graph en place
 {3,3}->dim([J]
 remplir(0,[J]
 ligne(20,0,20,-62
 ligne(40,0,40,-62
 ligne(60,0,60,-62
 ligne(0,-20,60,-20
 ligne(0,-40,60,-40
 22->A:-22->B:16->c:-38->D:0->N
 texte(1,80,"J1
 lbl 1
 repeat K=105
 ligne(A,B,A+C,B
 ligne(A,D,A+C,D
 ligne(A,B,A,D
 ligne(A+C,B,A+C,D
 codetouche->K
 if K=24:then
 ligne(A,B,A+C,B,0
 ligne(A,D,A+C,D,0
 ligne(A,B,A,D,0
 ligne(A+C,B,A+C,D,0
 A-20->A
 end
 if K=26:then
 ligne(A,D,A+C,D,0
 ligne(A,B,A+C,B,0
 ligne(A,B,A,D,0
 ligne(A+C,B,A+C,D,0
 A+20->A
 End
 If K=34:then
 ligne(A,B,A+C,B,0
 ligne(A,D,A+C,D,0
 ligne(A,B,A,D,0
 ligne(A+C,B,A+C,D,0
 B-20->B:D-20->D
 End
 If K=25:then
 ligne(A,B,A+C,B,0
 ligne(A,D,A+C,D,0
 ligne(A,B,A,D,0
 ligne(A+C,B,A+C,D,0
 B+20->B:D+20->D
 end
 end
 ligne(A,B,A+C,B,0
 ligne(A,D,A+C,D,0
 ligne(A,B,A,D,0
 ligne(A+C,B,A+C,D,0
 If A=2:1->X
 If A=22:2->X
 If A=42:3->X
 If B=-2:1->Y
 If B=-22:2->Y
 If B=-42:3->Y
 N+1->N
 If partdec((N+1)/2)=0:then
 1->T
 ligne(A,B,A+C,D
 ligne(A,D,A+C,B
 1->[J](Y,X):[J]
 Else
 (A+A+C)/2->E:(B+D)/2->F
 cercle(E,F,7
 2->T
 2->[J](Y,X):[J]         
 End
 For(H,1,3
 For(G,1,2
 If [J](H,1)=G et[J](H,2)=G et [J](H,3)=G ou [J](1,H)=G et [J](2,H)=G et [J](3,H)=G ou [J](1,1)=G et [J](2,2)=G et [J](3,3)=G ou [J](1,3)=G et [J](2,2)=G et [J](3,1)=G:then
 effecr
 disp "OWNED BY","JOUEUR",T
 goto 5
 else
 if T=1:texte(1,80,"J2
 if T=2:texte(1,80,"J1
 goto 1
 end
 end
 lbl 5
 disp " "
 



Le jeu fonctionne. Cependant il ne dis pas quand quelqu'un a gagné sauf quand on remplit la ligne du haut.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 05 Fév 2012, 17:23   Citer 

If partDéc(N/2
aurait permi de simplifier If partDéc((N+1)/2)=0 sans même modifier l'usage de N.

J'ai peut-être commis des erreurs dans le code suivant car je n'ai pas testé.
Néansmoins cela me paraît plus propre à plusieurs endroits.
Il doit rester encore de grosses modifs possibles pour la partie graphique.


Code
Effecr
EffVar [J]
{3,3->dim([J]
Ligne(20,0,20,-62
Ligne(40,0,40,-62
Ligne(60,0,60,-62
Ligne(0,-20,60,-20
Ligne(0,-40,60,-40
22->A:-22->B:16->C:-38->D:0->N
Lbl 1
Texte(1,80,"J1
If N
Texte(1,80,"J2
Repeat K=105
Ligne(A,B,A+C,B
Ligne(A,D,A+C,D
Ligne(A,B,A,D
Ligne(A+C,B,A+C,D
codeTouche->K
If K=24:Then
Ligne(A,B,A+C,B,0
Ligne(A,D,A+C,D,0
Ligne(A,B,A,D,0
Ligne(A+C,B,A+C,D,0
A-20->A
End
If K=26:Then
Ligne(A,D,A+C,D,0
Ligne(A,B,A+C,B,0
Ligne(A,B,A,D,0
Ligne(A+C,B,A+C,D,0
A+20->A
End
If K=34:then
Ligne(A,B,A+C,B,0
Ligne(A,D,A+C,D,0
Ligne(A,B,A,D,0
Ligne(A+C,B,A+C,D,0
B-20->B:D-20->D
End
If K=25:Then
Ligne(A,B,A+C,B,0
Ligne(A,D,A+C,D,0
Ligne(A,B,A,D,0
Ligne(A+C,B,A+C,D,0
B+20->B:D+20->D
End
End
Ligne(A,B,A+C,B,0
Ligne(A,D,A+C,D,0
Ligne(A,B,A,D,0
Ligne(A+C,B,A+C,D,0
If A=2:1->X
If A=22:2->X
If A=42:3->X
If B=-2:1->Y
If B=-22:2->Y
If B=-42:3->Y
non(N->N
If N
Then
Ligne(A,B,A+C,D
Ligne(A,D,A+C,B
Else
(A+C)/2->E:(B+D)/2->F
Cercle(E,F,7
End
N+1->[J](Y,X)
For(H,1,3
For(G,1,2
If [J](H,1)[J](H,2)[J](H,3)=G^3 ou [J](1,H)[J](2,H)[J](3,H)=G^3 ou [J](1,1)[J](2,2)[J](3,3)=G^3 ou [J](1,3)[J](2,2)[J](3,1)=G^3:Then
Effecr
Disp "OWNED BY","JOUEUR",N+1
Goto 5
End
Goto 1
Lbl 5
Disp " "



EDIT : j'ai effectivement commis au moins une erreur, c'est d'avoir oublié que 0 représentait une case vide et donce que qu'y stocker N entre 0 et 1 était idiot.
Je corrige. (longtemps après)
G vaut maintenant 1 ou 2, Je teste G^3, Je stocke N+1 dans la matrice.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Dim 05 Fév 2012, 19:12   Citer 

Et voila ca donne ceci =D Merci beaucoup pour vos conseils, le jeu marche tres bien mais prends un petit peu de temps pour les vérifications ^^ Je me demande si la calculatrice ne va pas ramer si je le fais sur un jeu de puissance 4 non?


Code
Effecr
 EffVar [J]
 {3,3->dim([J]
 Ligne(20,0,20,-62
 Ligne(40,0,40,-62
 Ligne(60,0,60,-62
 Ligne(0,-20,60,-20
 Ligne(0,-40,60,-40
 22->A:-22->B:16->C:-38->D:1->N
 Lbl 1
 Texte(1,80,"J1
 If partdec(N/2)=0:Texte(1,80,"J2
 Repeat K=105
 Ligne(A,B,A+C,B
 Ligne(A,D,A+C,D
 Ligne(A,B,A,D
 Ligne(A+C,B,A+C,D
 codeTouche->K
 If K=24:Then
 Ligne(A,B,A+C,B,0
 Ligne(A,D,A+C,D,0
 Ligne(A,B,A,D,0
 Ligne(A+C,B,A+C,D,0
 A-20->A
 End
 If K=26:Then
 Ligne(A,D,A+C,D,0
 Ligne(A,B,A+C,B,0
 Ligne(A,B,A,D,0
 Ligne(A+C,B,A+C,D,0
 A+20->A
 End
 If K=34:then
 Ligne(A,B,A+C,B,0
 Ligne(A,D,A+C,D,0
 Ligne(A,B,A,D,0
 Ligne(A+C,B,A+C,D,0
 B-20->B:D-20->D
 End
 If K=25:Then
 Ligne(A,B,A+C,B,0
 Ligne(A,D,A+C,D,0
 Ligne(A,B,A,D,0
 Ligne(A+C,B,A+C,D,0
 B+20->B:D+20->D
 End
 End
 Ligne(A,B,A+C,B,0
 Ligne(A,D,A+C,D,0
 Ligne(A,B,A,D,0
 Ligne(A+C,B,A+C,D,0
 If A=2:1->X
 If A=22:2->X
 If A=42:3->X
 If B=-2:1->Y
 If B=-22:2->Y
 If B=-42:3->Y
 1-N->N
 If partdec (N/2)=0:then
 Ligne(A,B,A+C,D
 Ligne(A,D,A+C,B
 1->[J](Y,X):[J]
 Else
 (A+C)/2->E:(B+D)/2->F
 Cercle(E,F,7
 2->[J](Y,X):[J]
 End
 For(H,1,3
 For(G,1,2
 If [J](H,1)[J](H,2)[J](H,3)=G ou [J](1,H)[J](2,H)[J](3,H)=G ou [J](1,1)[J](2,2)[J](3,3)=G ou [J](1,3)[J](2,2)[J](3,1)=G:Then
 Effecr
 Disp "OWNED BY","JOUEUR",N+1
 Goto 5
 End
 End
 End
 Goto 1
 Lbl 5
 Disp " "



 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 05 Fév 2012, 20:19   Citer 

çadépend, si tu ne teste pas la victoire (ou alors que si l'on appuye sur une touche donnée), on peut faire quelquechose d'assez rapide. Si on vérifie tout d'un cups, c'est long.

Par contre j'ai jamais aissayé en testant que ce qu'il y a autour.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Dim 05 Fév 2012, 20:40   Citer 

le temps d'attente est de meme pas une seconde donc ca va non?

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 05 Fév 2012, 20:45   Citer 

oui, aucun problème une seconde dans un jeu de réflexion.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Lun 06 Fév 2012, 9:46   Citer 

est-ce que je peux utiliser ce systeme pour mon puissance 4 ou il y a une matrice de 7x6 ou dois-je trouver un autre moyen? Si je dois trouver d'autres moyens avez vous des idees? merci

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 06 Fév 2012, 11:45   Citer 

Tu peux, c'est ainsi que j'ai fais le miens. Après, t'as aussi la possibilité d'utiliser une liste, mais je pense que c'est plus compliqué.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Lun 06 Fév 2012, 12:56   Citer 

ca donnerait :

Code
For(X,1,7
For(Y,1,6
For(G,1,2
If [J](Y,X)[J](Y,X+1)[J](Y,X+2)[J](Y,X+3)=G^4 ou [J](Y,X)[J](Y+1,X)[J](Y+2,X)[J](Y+3,X)=G^4 ou [J](Y,X)[J](Y+1,X+1)[J](Y+2,X+2)[J](Y+3,X+3)=G^4 ou [J](Y,X)[J](Y-1,X-1)[J](Y-2,X-2)[J](Y-3,X-3)=G^4:Then


Mais est-ce que cela ne va pas buger puisque il va devoir chercher des chiffres hors de la matrice non? exemple quand X=7 X+1=8 or la matrice est de {6,7}.

Donc faudrait plutot utiliser ça non?

Code
For(X,1,4
For(Y,1,6
For(G,1,2
If [J](Y,X)[J](Y,X+1)[J](Y,X+2)[J](Y,X+3)=G^4:Then

For(X,1,7
For(Y,1,3
For(G,1,2
If [J](Y,X)[J](Y+1,X)[J](Y+2,X)[J](Y+3,X)=G^4:Then

For(X,1,4
For(Y,1,3
For(G,1,2
If [J](Y,X)[J](Y+1,X+1)[J](Y+2,X+2)[J](Y+3,X+3)=G^4:Then

For(X,4,7
For(Y,4,6
For(G,1,2
If [J](Y,X)[J](Y-1,X-1)[J](Y-2,X-2)[J](Y-3,X-3)=G^4:Then



EDIT : merci sandro j'ai changé l'erreur ^^

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 06 Fév 2012, 13:27   Citer 

soit tu sépare la matrice en plusieurs zonnes, soit tu fait une matrice plus grande et utilise un "cadre" autour de la partie intéressante pour pouvoir faire une seule boucle de tests.

Sinon, il pourrait aussi être intéréssant de ne tester que les nouvelles possibilitées de victoire, mais là, c'est un peu plus dure.

sandro

PS : pour un puissance 4, il te faudrait pas plutôt du G^4?

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 06 Fév 2012, 13:57   Citer 

Tu utilises une seule boucle For, tu pratiques un test de validité des coordonnées, puis tu effectues un test d'alignement, et tu reccomences pour tester au final les quatres orientations.
Voilà comment je le vois :
Code
For(X,1,7
For(Y,1,6
For(G,1,2
If coordonnées valides:Then  // horizontal
If alignement:Goto 5:End
If coordonnées valides:Then  //vertical
If alignement:Goto 5:End
 // et caetera
End:End:End  // fin des For

Lbl 5
Effecr
Disp "OWNED BY","JOUEUR",N+1

----
Il pourrait être possible de pratiquer un test sur les cases autour du pion joué plutôt que de pratiquer un test sur toute la matrice. Et aussi tester uniquement la couleur de pion du joueur qui vient de jouer.
Un peu à l'instar de ceci ou cela

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Lun 06 Fév 2012, 15:12   Citer 

J'ai tester une matrice plus grande avec toutes les boucles. elle fait {12,13} cependant le temps d'attente est trop long.(plus de 10 secondes) Que veut tu dire par faire des zones dans la matrice?

linkakro je suis allé voir sur tes liens. J'essaye de comprendre et il y a beaucoup de choses qui peuvent me faire progresser comme ceci :


Code
min(3,max(1,X-(K=24)+(K=26üX
 min(3,max(1,Y-(K=25)+(K=34üY


Sauf que je ne comprends a quoi correspond le ü. ainsi que ton test de coordonnées valides^^'

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 06 Fév 2012, 17:37   Citer 

ü représente -> , c'est quand on fait un copier coller de TI-Editor et qu'on oblie de rectifier.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Mar 07 Fév 2012, 20:20   Citer 


Code
Repeat K=105
  Ligne(A,B,A+C,B
  Ligne(A,D,A+C,D
  Ligne(A,B,A,D
  Ligne(A+C,B,A+C,D
  codeTouche->K
  If K=24:Then
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  A-20->A
  End
  If K=26:Then
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A+C,B,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  A+20->A
  End
  If K=34:then
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  B-20->B:D-20->D
  End
  If K=25:Then
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  B+20->B:D+20->D
  End
  End


Ce code peut il etre remplacé par :

Code
Repeat K=105
Ligne(A,B,A+C,B
  Ligne(A,D,A+C,D
  Ligne(A,B,A,D
  Ligne(A+C,B,A+C,D
  codeTouche->K
  min(3,max(1,X-(K=24)+(K=26->X
  min(3,max(1,Y-(K=25)+(K=34->Y
  A+X*20->A
  B+Y*20->B
  D+Y*20->D
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  End
  End



Edit : j'ai rajouté les end.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 07 Fév 2012, 21:49   Citer 

Tu pourais s'il te plait préciser la signification de" X et Y ainsi que leur initialistion?

Sinon, il ne manquerait pas un End à la fin de chaque programme (sauf s'il y a encore autre chose dans la boucle).

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Mar 07 Fév 2012, 22:26   Citer 

non il n'y a rien d'autre dans la boucle. X correspond a l'abscisse, ici la colonne 1 2 ou 3 et y l'ordonnée, la ligne 1, 2 ou 3

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 07 Fév 2012, 22:52   Citer 

Et A,B,C et D correspondent à quoi?

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Mer 08 Fév 2012, 9:58   Citer 

Ce sont des points du graphique qui permettent de faire le curseur qui est un carré.
A est labscisse du côté gauche du carré. À+C est labscisse du côté droit du carré. B et D sont les ordonnées des côtés du haut et du bas du carré.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 08 Fév 2012, 11:36   Citer 

Désolé, ce n'est malheureusement pas possible (le premier code permet à A de diminuer, mais pas le second.

Par contre, je crois qe tu peut faire à la place du 1er programme:

Code
Repeat K=105
Ligne(A,B,A+C,B
  Ligne(A,D,A+C,D
  Ligne(A,B,A,D
  Ligne(A+C,B,A+C,D
  codeTouche->K
  (K=26)-(K=26->U
  (K=34)+(K=25->V 
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  A+20U -> A
  B+20V -> B
  D+20V -> D
  End



et si tu veut controler la position, prend plutôt celui-ci:

Code
Repeat K=105
Ligne(A,B,A+C,B
  Ligne(A,D,A+C,D
  Ligne(A,B,A,D
  Ligne(A+C,B,A+C,D
  codeTouche->K
  X -> U
  Y -> V
  min(3,max(1,X-(K=24)+(K=26->X
  min(3,max(1,Y-(K=25)+(K=34->Y
  Ligne(A,B,A+C,B,0
  Ligne(A,D,A+C,D,0
  Ligne(A,B,A,D,0
  Ligne(A+C,B,A+C,D,0
  A+20(X-U -> A
  B+20(Y-V -> B
  D+20(Y-V -> D
  End




Sandro

PS : pourquoi ne pas exprimer D comme étant B+K ?

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Maximinus



Autorisation : Membre
Nb de messages : 23
Inscrit le : Dim 13 Nov 2011, 20:13
Posté le : Sam 03 Mar 2012, 17:37   Citer 

vu que je fais les programmes comme je peux, j'ai a ce moment la choisi de mettre D et non B+C ^^'

Merci pour le morceau du programme, il marche tres bien mais j'ai du changer les positions initiales des points A, B et D et je ne sais pas pourquoi =O. Le curseur clignote mais ce n'est pas grave puisque cela a permis de raccourcir mon programme. =)

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes