Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Dim 06 Fév 2011, 15:51
salut à tous, amis programmeurs !
j'ai récemment utilisé mes cours très ennuyeux de français pour me faire un petit rally sympa dont je vous propose le code plus bas (version ti-82+ stats fr)
Le problème est que dès que l'on passe au niveau deux, on perd la partie, je n'arrive pas à trouver l'erreur, peut-être vous si !
PPS : pour les non habitués, le symbole á signifie ligne (L) et ü stocker
Code
EffEcr
For(I,1,8
For(J,1,16
Output(I,J,"/
End
EffVar J
End
Output(4,6,"RALLY
Output(8,1,"BY HADRIEN
Output(8,13,"2ND7
For(J,1,500
End
Lbl M
Menu("RALLY","JOUER",1,"RECORD",2,"QUITTER",3
Lbl 1
16üP
16üZ
2üT
0üÁ
1üA
1üB
1üC
1üD
1üE
1üF
4üM
0üS
100üX
200üU
Lbl J
While MøF
entAléat(1,8)=>A
codeTouch(=>K
If K=105
Pause
If K=24
U+5üU
If K=26 et U>10
U-10üU
If K=25 et M/est différent de/1
Then
Output(M,1," "
M-1=>M
End
If K=34 et M/est différent de/8
Then
Output(M,1," "
M+1üM
End
EffEcr
Output(A,16,"X
Output(B,13,"X
Output(C,10,"X
Output(D,7,"X
Output(E,4,"X
Output(F,1,"X
If S=10 ou S=100 ou S=1000
Z-1üZ
Output(1,Z,S
S+1üS
If S=X
Then
EffEcr
Output(4,5,"NIVEAU
Output(4,12,T
X+120üX
T+1üT
For(I,1,400
End
End
If Tù3
Then
If P>0 et V=1
Then
Output(1,P,"]
Output(2,P,"]
Output(3,P,"]
Output(4,P,"]
Output(5,P,"]
Output(6,P,"]
Output(7,P,"]
Output(8,P,"]
Output(G,P," "
Output(G+1,P," "
P-1üP
End
If P=0
Then
entAl–at(1,5üV
entAl–at(1,7üG
End
If M/est différent de/ G et M/est différent de/G+1 et P=1
Then
Goto P
End
End
Output(M,1,"[}
EüF
DüE
CüD
BüC
AüB
For(Y,1,U
End
U-1üU
End
Lbl P
If S>LHS(2)/áHS(1
Then
normAléat(1,1000000)=>LHS(1
S*LHS(1)=>LHS(2
End
EffEcr
Output(3,5,"PERDU !
Output(5,3,"SCORE:
Output(5,11,S
Output(5,15,"M
Lbl 2
Output(6,3,"RECORD:
Output(6,11,LHS(2)/LHS(1
Output(6,15,"M
Pause
Goto M
Lbl 3
EffVar A
EffVar B
EffVar C
EffVar D
EffVar E
EffVar F
EffVar I
EffVar J
EffVar K
EffVar M
EffVar N
EffVar O
EffVar P
EffVar Q
EffVar R
EffVar S
EffVar T
EffVar U
EffVar V
EffVar W
EffVar X
EffVar Y
EffVar Á
EffVar Z
EffEcr
Stop
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 07 Fév 2011, 0:20
Code
If S>áHS(2)/áHS(1
Then
normAl–at(1,1000000)üáHS(1
S*áHS(1)üáHS(2
End
Explique moi ces lignes stp. En particulier cette division et le normAléat.
-------
Ce programme fonctionne mais je suis perplexe concernant la technique.
---------------------- 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)
Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Lun 07 Fév 2011, 19:14
en fait je file mes programmes a des potes qui essaient de bidouiller leurs meilleurs scores du coup face a un nombre aléatoire, y comprennent pas comment le modifier... je m'explique :
Citer
Then
normAléat(1,1000000)=>LHS(1
S*LHS(1)=>LHS(2
End
La méthode est la suivante : le score est stocké dans S. Si S est supérieur au meilleur score, alors je demande a la calculatrice de mettre un nombre aléatoire entre 1 et 1000000 dans la liste HS(1).Puis je lui demande de multiplier ce nombre par le meilleur score et de stocker le résultat dans la liste HS(2)
Citer
If S>LHS(2)/=>LHS(1
Ainsi, à la fin de la partie je fais l'opération inverse pour vérifier si S est un nouveau record : si S (score) est supérieur au meilleur score donc LHS(2)/LHS(1)
Voilà
EDIT : en quoi es tu perplexe sur ma façon de coder ? (j'ai du oublier de préciser que je ne suis qu'en seconde et que je débute en Ti-Basic lol)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 07 Fév 2011, 23:47
AAAHHH ! Je comprends mieux ! C'est malin comme cryptage.
Je ne programme que depuis la Première donc je ne sais pas si j'aurais pu en être cappable
Je me demande s'il vaut mieux faire comme toi ou bien employer une matrice ou liste pour augmenter la quantité d'obtacles. Ce domaine est un débat délicat.
---
Plus globalement ce programme est une réussite. (avec une mécanique qui m'est étrangère)
---------------------- 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)
Autorisation : Membre
Nb de messages : 44
Inscrit le : Sam 16 Oct 2010, 10:29
Posté le : Mer 09 Fév 2011, 13:02
j'avais essayer de remplacer toutes les variables par une matrice, en effet cela permet d'augmenter le nombre d'obstacle mais il y a plusieurs problèmes : d'abord la taille du programme DOUBLE (oui oui) et cela ralenti considérablement le programme.... autant ne pas mettre beaucoup d'obstacles et qu'il y ai une meilleure fluidité, la difficulté est toujours présente.
Sinon qq a une idée pour ma question ???
Citer
Le problème est que dès que l'on passe au niveau deux, on perd la partie, je n'arrive pas à trouver l'erreur, peut-être vous si !
EDIT : la touche > permet d'accélérer et < de ralentir.
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 09 Fév 2011, 16:00
Je crois que tu dois modifier cette ligne :
Code
If MøG et MøG+1 et P=1 // ajoûte// et V=1
OU BIEN pratiquer 0->P au lieu de 1->P au début.
---------------------- 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)