Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 30 Avr 2012, 0:11
Dis-nous le lieu de l'erreur capacité en sélectionnant "2:voir" dans le menu qui signale l'erreur.
Une erreur capacité se déclare lorsqu'un nombre atteind ou dépasse 10^100.
---------------------- 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)
Nouveau Morpion Plus long mais 20fois mieux que le precedent !!!
Code
ClrDraw
prgmSETGRAPH
RecallPic 1
1->D
Repeat G=105 //écran-titre
Line(30,-24-11D,-30,-32-11D // Affiche le cadre
Line(30,-32-11D,64,-32-11D
Line(64,-32,-11D,64,-24-11D
Line(64,-24-11D,30,-24-11D
Repeat G=105 or (G=25 and D>1) or (G=34 and D<2
getKey->G
End
Line(30,-24-11D,-30,-32-11D,0 // Efface le cadre
Line(30,-32-11D,64,-32-11D,0
Line(64,-32,-11D,64,-24-11D,0
Line(64,-24-11D,30,-24-11D,0
D-(G=25)+(G=34)->D // Le cadre est déplacé
End
ClrDraw
If D=2 // Quitter
Then
prgmRESETGRF
ClrHome
Output(1,1,"
Return
End
If D=1 // Jouer
Then
10->dim(LMORP
2->dim(LPLYR
For(Z,1,10
If LMORP(Z)=0
Then
Text(Z*6-5,20,Z,":NOUVEAU JOUEUR
Else
Text(Z*6-5,20,Z,":",LMORP(Z)," PTS
End
End
For(P,1,2 // Choix du slot de sauvegarde pour chacun des joueurs
1->D
Text(0,0,"J",P
Repeat G=105
Pt-On(Z*-6-5,10,2
Repeat G=105 or (G=25 and D>1) or (G=34 and D<10
getKey->G
End
Pt-Off(Z*-6-5,10,2
D-(G=25)+(G=34)->D
End
D->LPLYR(P // Le numéro de slot est stocké dans une liste
End
ClrDraw
//Début de la partie
Line(51,0,51,-61 // Affichage du plateau de jeu
Line(73,0,73,-61
Line(31,-20,90,-20
Line(31,-41,93,-41
Line(28,0,28,-62
{3,3}->dim([A]
Fill(0,[A]
randInt(0,1)->T
0->N
2->A
2->B
0->W
Text(9,1,"SCORE :
Text(16,1,LMORP(LPLYR(1
Text(16,16,LMORP(LPLYR(2
Repeat W>0
Text(1,1+16T," "
not(T)->T // C'est au tour du joueur suivant
Text(1,1+16T,"J",T+1
Repeat G=105 and [A](A,B)=0
Line(27+22A,20-21B,27+22A,3-21B // Affiche le cadre du plateau de jeu
Line(27+22A,3-21B,9+22A,3-21B
Line(9+22A,20-21B,9+22A,3-21B
Line(9+22A,20-21B,27+22A,20-21B
Repeat (G=105 and [A](A,B)=0) or (G=24 and A>1) or (G=25 and B>1) or (G=26 and A<3) or (G=34 and B<3)
getKey->G
End
Line(27+22A,20-21B,27+22A,3-21B,0 // Efface le cadre du plateau de jeu
Line(27+22A,3-21B,9+22A,3-21B,0
Line(9+22A,20-21B,9+22A,3-21B,0
Line(9+22A,20-21B,27+22A,20-21B,0
A-(G=24)+(G=26)->A // Le cadre change de coordonnées
B-(G=25)+(G=34)->B
End
T+1->[A](A,B) // La case est déclarée comme pleine
If T=0 // Affichage du pion du joueur
Then
Line(27+22A,20-21B,9+22A,3-21B
Line(27+22A,3-21B,9+22A,20-21B
Else
Circle(18+22A,11-21B,7
End
N+1->N
If N>4 // Si le nombre de pions placés permet une victoire
Then
N=9->W
For(Z,1,2) // Teste si 3 cases alignées contiennent le même type de pions
For(M,1,3)
W+([A](M,1)=Z and [A](M,2)=Z and [A](M,3)=Z)->W
W+([A](1,M)=Z and [A](2,M)=Z and [A](3,M)=Z)->W
End
W+([A](1,1)=Z and [A](2,2)=Z and [A](3,3)=Z)->W
W+([A](3,1)=Z and [A](2,2)=Z and [A](1,3)=Z)->W
End // W vaut plus de 0 si le jeu doit se terminer.
End
End
ClrDraw
If N=9 and W=1
Then
Text(29,30,"MATCH NUL
Else
Text(29,17,"LE JOUEUR ",T+1," GAGNE
LMORP(LPLYR(T+1))+1->LMORP(LPLYR(T+1
End
Pause
End
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 16 Oct 2012, 23:46
"!=" est comme en C et représente "inégal" à trouver dans le menu 2nde+math(test)
Sinon cela fait G factorielle égal 0, et G doit alors être entier et ne pas dépasser 69.
---------------------- 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)