Poster un nouveau sujet Poster une réponse <<   Page: , 2,      >>
Morpion
Auteur Message
F-BVXT



Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 13:28   Citer 

Oui, sinon tu prend ce que j'ai mis plus haut en donnant directement la valeur de J :

Code
EffVar I     //cette ligne ne sert que si on veut que ce soit toujours le même           
              joueur qui commence
...
If non(partDéc(I/2   //ca équivaut à si I est pair
Then
Prompt X,Y
4->J
Else
CaptVar(X
CaptVar(Y
1->J
End
...
I+1->I   //I sera donc pair un coup sur deux



Ou, comme si J est égale à 1, J=1 renvoie 1, si J est égale à 4, J=4 renvoie 1 et dans les cas échéant ça renvoie 0, on peut faire ça :

Code
4->J
...
If J=4
Then
Prompt X,Y
Else
CaptVar(X
CaptVar(Y
End
...
4(J=1)+(J=4->J


[/code]
Voilà, j'espère que ça t'as aidé.

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Sam 16 Jui 2012, 13:33   Citer 

AAAAAhhhhh!!!!


Code
If partDéc(I/2=0   //ca équivaut à si I est pair



Erreur monumentale ahh.gif

faut fermer parenthèses avant le =0


Code
If 0=partDéc(I/2



ou alors tout simplement


Code
If non(partDéc(I/2 



----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 13:36   Citer 

Ah oui merci de me le faire remarquer j'ai Edit mon message. De toute façon ça aurait faire une belle Erreur Syntaxe à cette ligne. godgrace.gif

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Sam 16 Jui 2012, 13:40   Citer 

Non, la condition aurait juste toujours été fausse car que I/2=0 soit vrai ou faux, sa aurait donné 1 ou 0 or il n'y a pas de partie déciimale à 1 et 0 donc condition toujours fausse

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Dim 17 Jui 2012, 19:37   Citer 

Il est presque au point grâce à vos conseils mais il manque un petit quelque chose...Un algorithme qui empêcherai de jouer 2 fois sur la même case!!
J'ai essayé quelque chose mais il fonctionne que la première fois puis il se fait oublier cry.gif


Code

9->dim(L4
Remplir(1,L4
For(M,2,8,2
4->L4(M
End
27->dim(L4
EffVar M
{3,3->dim([A]
disp [A]
While 1
M+1->M
Repeat X != L4(10) ou L4(11) ou L4(12) ou L4(13) ou L4(14) ou L4(15) ou L4(16) L4(17) ou L4(18) et Y != L4(19) ou L4(20) ou L4(21) ou L4(22) ou L4(23) ou L4(24) ou L4(25) ou L4(26) ou L4(27)
Prompt X,Y
End
X->L4(M+9
Y->L4(M+18            //Après c'est la fin du premier programme




Je pense que le problème vient de la condition mais je n'en suis pas sur.
Merci d'avance.

 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Dim 17 Jui 2012, 22:20   Citer 


Code
Repeat X != L4(10) ou L4(11) ou L4(12) ou L4(13) ou L4(14) ou L4(15) ou L4(16) L4(17) ou L4(18) et Y != L4(19) ou L4(20) ou L4(21) ou L4(22) ou L4(23) ou L4(24) ou L4(25) ou L4(26) ou L4(27)


Ca serait pas plutôt des "et" à la place des "ou" ?
Sinon, si on es à la fin du programme, ta boucle Repeat se termine bien mais il n'y a pas de End pour le "While 1".

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Lun 18 Jui 2012, 10:39   Citer 

Disons que j'ai remplacé les "ou" par les "et" et la c'est tout le contraire, ça répète tout le temps même à la première valeur


Code
Repeat X != L4(10) et L4(11) et L4(12) et L4(13) et L4(14) et L4(15) et L4(16) et L4(17) et L4(18) ou Y != L4(19) et L4(20) et L4(21) et L4(22) et L4(23) et L4(24) et L4(25) et L4(26) et L4(27)



ça devient enervant maxiangry.gif

 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Lun 18 Jui 2012, 11:08   Citer 

ton erreur vient du fait que


Code
X != L4(10) ou L4(11)



veut dire si X pas égal à L4(10) ou L4(11) != 0
Il faut toujours remettre X!= si tu veux que sa marche

Ou alors tout simplement :


Code
Repeat min(X != {L4(10),L4(11),L4(12),L4(13),L4(14),L4(15),L4(16),L4(17),L4(18)}) et min(Y != {L4(19),L4(20),L4(21),L4(22),L4(23),L4(24),L4(25),L4(26),L4(27)



----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Lun 18 Jui 2012, 11:53   Citer 

Ta méthode fonctionne mais il reste un petit hic, ou alors j'ai mal recopié mais quand on entre 3,3 et 1,1 on ne peu plus utiliser des coordonnées qui comportent 3 et 1 c'est assez embêtant cry.gif

EDIT: Désolé ta méthode était bonne j'avais juste inversé X et Y

 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 369
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Lun 18 Jui 2012, 11:58   Citer 


Code
Repeat min(X != {L4(10),L4(11),L4(12),L4(13),L4(14),L4(15),L4(16),L4(17),L4(18)}) ET min(Y != {L4(19),L4(20),L4(21),L4(22),L4(23),L4(24),L4(25),L4(26),L4(27)



Ta bien mit le "et"? Si ta mis un "ou" sa fera ce que ta dit. Sinon je sais pas d'ou sa vient

PS : Regarde si ta bien fermer les parenthèses winkle.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Lun 18 Jui 2012, 14:33   Citer 

Je crois que je vais devoir miser sur l'honnêteté de l'adversaire godgrace.gif
De toute façon je suis même pas sur de pouvoir jouer contre un adversaire cry.gif
Merci à tous pour votre aide!

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 18 Jui 2012, 14:49   Citer 

Ben sinon quand une case de liste / matrice est remplie par le morpion il suffit de dire "si cette case est remplie et qu'on réappuie dessus ça ne fait rien". Ou "remplir cette case si et seulement si elle n'est pas remplie".

Jette un coup d'oeil à mon morpion si tu veux voir comment j'ai fait winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Lun 18 Jui 2012, 15:20   Citer 

Pourquoi je suis allé me casser la tête avec tout ça godgrace.gif


Code

Repeat non([A](Y,X
Prompt X,Y
End


Vachement plus léger bigmouth.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 18 Jui 2012, 18:47   Citer 

Je voie que ça progresse : continuez comme ça !

Citer : The K
Oh ben je vais étudier les IA de Sandro / Linka / Persa et J'vais bien voir comment ils ont fait godgrace.gif

Sachez que je n'ai pas écrit d'IA contrairement à persalteas et sandro.
Consultez le site du TI-Concours-2012 pour avoir un maximum d'exemples de morpions dont quelques uns contenant une IA.


Citer : The K
Et attention à la commande EnvoiVar( qui n'existe pas notgood.gif

Bien sûr que si cela existe ! utilise la fonction "Envoi()"

EDIT: d'après les messages qui suivent, seule CaptVar() permet d'échanger des données pour ce jeu.

----------------------
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 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 18 Jui 2012, 20:50   Citer 

Je sais ce que je dis linka ^^
On ne me piègera pas sur le manuel ! La commande envoi( existe bel et bien mais elle ne permet pas d'envoyer des données à une autre TI ... Elle était ense servir au départ avec du matériel d'acquisition de données scientifiques je crois (capteurs et autres).
La commande EnvoiVar, qui permettait d'envoyer des données à une autre Ti n'existe par contre pas.

Oh et merci pour le ti concours 2012 je n'y avais pas pense happy.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 18 Jui 2012, 21:53   Citer 

D'accord.

Citer : manuel ti82statfr
0: CaptVar( Capte une variable d’une autre TI-82 STATS
A: Capt( Capte une variable de CBL ou CBR
B: Envoi( Envoie une variable à CBL ou CBR


Citer : manuel ti82stat
0: GetCalc( Capte une variable d’une autre TI-82 STATS
A: Get( Capte une variable de CBL ou CBR
B: Send( Envoie une variable à CBL ou CBR



----------------------
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 
 
Samos



Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Mar 19 Jui 2012, 16:17   Citer 

Bon j'ai pris la peine d'essayer de le mettre en un seul morceau malgré les autres morpions qui ont l'air meilleurs! D'ailleurs je doute que beaucoup de personnes en veuillent (on ne sait jamais!)
Je préfère le mode matrice/liste dsl the K godgrace.gif
Il prend 421 octets de mémoire et 1000 en plus avec les variables godgrace.gif


Code

3->dim(L1
3->dim(L2
3->dim(L3
Remplir(0,L1
Remplir(0,L2
Remplir(0,L3
EffVar [A]
9->dim(L4
Remplir(1,L4
For(M,2,8,2
4->L4(M
End
27->dim(L4
EffVar M
{3,3->dim([A]
Disp [A]


While 1
M+1->M
If partDec(M/2)=0      // Je n'ai pas encore 2 calculatrices mais sur l'autre
Then                   //   ça sera
                                     If partDec(M/2)=0                                                                   
CaptVar(X                            Then 
CaptVar(Y                            Repeat non([A](X,Y
Else                                 Prompt X,Y
Repeat non([A](X,Y                   End
                                     Else                 
Prompt X,Y                           CaptVar(Y 
End                                  CaptVar(X
                                     End
End
X->L4(M+9
Y->L4(M+8
L4(M->[A](Y,X
Matr>liste([A],L1,L2,L3
somme(L1->D
somme(L2->E
somme(L3->F
L1(1)+L2(1)+L3(1->G
L1(2)+L2(2)+L3(2->H
L1(3)+L2(3)+L3(3->I
L1(1)+L2(2)+L3(3->J
L1(3)+L2(2)+L3(1->K
If D=12 ou E=12 ou F=12 ou G=12 ou H=12 ou I=12 ou J=12 ou K=12
Then
Disp "joueur 2 a gagne
Stop
End
If D=3 ou E=3 ou F=3 ou G=3 ou H=3 ou I=3 ou J=3 ou K=3
Then
Disp "joueur 1 a gagne
Stop
End
Disp [A]
End



Désolé pour les lignes sautées et les espaces j'ai eu un peu de mal avec la mise en page.

En parlant de 2 calculatrices, je suis à la recherche d'une TI qui a une bonne mémoire et qui est assez rapide, j'ai deja une 82stats.fr (qui a plus beaucoup de mémoire maxiangry.gif ) (ou l'on peu programmer bien-sur ) si vous avez quelques conseils à ce sujet happy.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 19 Jui 2012, 17:39   Citer 

82stat: os 1.10001
82statfr: os 1.11fr7 , carte mère similaire à une 83plus
83: os 1.10
6MHz
28ko ram
abscence de mémoire d'archive.

83plus : ram 25ko, flash 160ko , os1.12 , 6MHz

84plus : os2.43
84pocket : os2.55mp
ram 25 ko , flash 480ko , 15MHz , horloge intégrée

83plus-SE : os 1.19 (pas d'horloge)
84plus-SE : os 2.43/2.55mp , horloge intégrée
ram 25 ko , flash 1540ko , 15MHz


-----
La ti84plusSilverEdition est le meilleur choix mémoire (1540ko) options et vitesse (15MHz) des Z80 (76 à 86).
La ti84pocketfr est une miniature de 84plus(NON-SE). Elle dispose du même système mais de seulement 480ko. (même vitesse)

La ti89 (titanium ?) gère le calcul formel et des choses que j'ignore. Elle SEMBLE plus accessible que les autres 68k.

=======================

J'ai écrit un programme conçu pour fonctionner en liaison de deux calculatrices. C'est en quelques sorte une continuité de mon ancien morpion.
Cependant il BLOQUE et je ne trouve pas pourquoi.
Code
0identity(3ü[A]  // matrice carrée et nulle
2üX
2üY
ClrHome
Output(4,X,"*
Output(Y,4,"*
0üA  // permettra de compter les coups
Menu("","J1",1,"J2",2
Lbl 2
Ans+1
Lbl 1
Ans+1üI // chaque calculatrice possède un numéro
1üJ  // numéro du joueu actif
If I=1
Goto 5  // le joueu 1 commence
Lbl 3
If A=9  // au dernier tour, cela permet de détecter le match nul
Goto 6
Repeat J=I or J>2   // retient le joueu inactif
Pause
GetCalc(J
End

GetCalc([A]
GetCalc(X
GetCalc(Y
Output(Y,X,3-I
GetCalc(A

If J=4
Goto 6
If J=3
Goto 7

Lbl 5

Repeat K=105 and not([A](Y,X
Repeat K
getKeyüK
End
Output(4,X," "
Output(Y,4," "
max(1,min(3,X-(K=24)+(K=26üX
max(1,min(3,Y-(K=25)+(K=34üY
Output(4,X,"*
Output(Y,4,"*
End
Iü[A](Y,X     // stock du coup
Output(Y,X,I
A+1üA  // compte des coups
3-JüJ  // changement de joueur
If min(I^3-{[A](Y,1)[A](Y,2)[A](Y,3),[A](1,X)[A](2,X)[A](3,X),[A](1,1)[A](2,2)[A](3,3),[A](1,3)[A](2,2)[A](3,1
Goto 3
3üJ
Output(5,1,"GAGNE
Stop
Lbl 6
4üJ
Output(5,1,"MATCH NUL
Stop
Lbl 7
Output(5,1,"PERDU

Je l'ai testé sous émulateur en m'assurant bien que les calcultatrices sont virtuellement reliées.

----------------------
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 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mar 19 Jui 2012, 19:25   Citer 

Parce que tu n'as pas défini Ans au début du programme ?

Ou parce que ta condition avec min( semble avoir un bout manquant ?

Ou je raconte des bêtises ? winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 19 Jui 2012, 20:31   Citer 

Non.
Par contre je viens de trouver qu'une Pause est passée lorsque l'autre calculatrice prélève quelque chose, ce qui un gros problème.
Cela fait tourner en rond les boucles de blocages.

EDIT : j'ai trouvé une solution.
Il faut une Pause pour chaque transfert.
Dans ce programme, ne pressez jamais la touche "entrer" (sauf dans le menu initial).
Utilisez 2nde et les flèches pour jouer.
Les graphismes sont bas de gamme mais peuvent être améliorés.

Code
0identity(3ü[A]
2üX
2üY
ClrHome
0üJ
0üA
Menu("","J1",1,"J2",2
Lbl 2
Ans+1
Lbl 1
Ans+1üI
If I=1
Goto 5
Goto 4
Lbl 3
If A=9
Goto 6

GetCalc(J
Pause
Pause
Pause
Pause
Pause
Lbl 4
Pause
GetCalc(X
GetCalc(Y
GetCalc(J
Output(Y,X,3-I
If J=4
Goto 6
If J=3
Goto 7
GetCalc([A]
GetCalc(A

Lbl 5
Output(4,X,"*
Output(Y,4,"*
Repeat K=21 and not([A](Y,X
Repeat K
getKeyüK
End
Output(4,X," "
Output(Y,4," "
max(1,min(3,X-(K=24)+(K=26üX
max(1,min(3,Y-(K=25)+(K=34üY
Output(4,X,"*
Output(Y,4,"*
End
Output(4,X," "
Output(Y,4," "
Iü[A](Y,X
Output(Y,X,I
A+1üA
If min(I^3-{[A](Y,1)[A](Y,2)[A](Y,3),[A](1,X)[A](2,X)[A](3,X),[A](1,1)[A](2,2)[A](3,3),[A](1,3)[A](2,2)[A](3,1
Goto 3
GetCalc(J
3üJ
Output(5,1,"GAGNE
Stop
Lbl 6
GetCalc(J
4üJ
Output(5,1,"MATCH NUL
Stop
Lbl 7
Output(5,1,"PERDU



----------------------
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é    



 
Poster un nouveau sujet Poster une réponse <<   Page: , 2,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2025 Groupe FSB
Page générée en 6 requêtes
BlackOne par Grimmlink