Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Slalom - Page 1 / 2
MoonWalk le 15/09/2011 à 18:21
Voici un petit programme que j'ai créé hier pendant mon cours de maths... J'ai mis environ 45 minutes pour le créer et j'ai donc eu les 10 minutes restantes du cours pour le tester. Et je n'en suis pas déçu !
Par contre, j'aimerais ajouter une sorte de classement qui enregistre le ou les trois meilleurs scores. Mais je ne sais pas comment faire, je sais juste qu'il faut utiliser des listes...
Bref, voici le programme (environ 300 octets) Flèche haut et bas pour se déplacer, il faut passer entre les portes (d'où son nom "slalom", un jeu de ski ^^)
Code
0->S
10->U
4->V
Lbl 0
EffEcr
1->A
1->B
entAleat(3,8->X
X-2->Y
Output(X,A,"*
Output(Y,B,"*
Output(V,U,"=
Output(1,1,S
Lbl 1
CodeTouche->K
If B et A=16
Goto 0
S+1->S
B+1->B
A+1->A
Output(X,A-1," "
Output(Y,B-1," "
Output(X,A,"*
Output(Y,B,"*
If K=25
V-1->V
Output(V+1,U," "
Output(V,U,"=
If K=34
V+1->V
Output(V-1,U," "
Output(V,U,"=
If V[différent de]X-1 et A=10
Goto 3
Goto 1
Lbl 3
EffEcr
Output(3,4,"GAME OVER
Output(6,3,"SCORE :
Output(6,11,S
Pause
EffEcr
azerty1 le 15/09/2011 à 19:38
Je n'ai pas testé, mais pour les meilleurs scores:
Le meilleur score sera stocké dans un emplacement d'une liste L1(1) par exemple, donc à la fin de la partie, tu n'as qu'a testé si le score obtenu, est plus élevé que le score stocké dans ta liste, et le remplacer si c'est le cas:
Code
25->L1(1)
If S>L1(1)
S->L1(1)
Désolé, si je ne suis pas très clair...

sandro le 15/09/2011 à 20:29
Perso, je suggèrerait plutôt de rajouter avant la première ligne :
Code
3 -> dim(ListeSLALO //dim est dans liste/droite
Et à la fin :
Code
:If S>max(ListeSLALO
:Then
: // ici toutes les instruction en cas de score parmis les 3 premiers (affiche
: //le fait que l'on ait batut un des 3 records
:End
:S -> ListeSLALO(4
:TriCroi(ListeSLALO
:3 -> sim(ListeSLALO
NB: "Liste" est à remplacer par le petit L du meu liste/droite.
Sandro
azerty1 le 15/09/2011 à 20:41
Et n'oublies pas de créer ta liste SLALO avant [stats] [Edit...] ...sandro le 15/09/2011 à 21:05
pas la peine, c'est pour éparnier ce travail que j'ai rajouté la ligne à mettre au début.
SandroMoonWalk le 15/09/2011 à 21:13
Houlà... ! Je n'suis pas sur d'avoir bien compris... Je regarderais ça
Sinon, à part ça, que pensez vous du programme ?
sandro le 15/09/2011 à 21:21
Je ne l'ai pas testé, mais en tout cas il a l'air bien optimisé (enfin sauf les guillemets fermants nécéssaire à la détection des espaces) et à une taille très réduite.
Sandroazerty1 le 15/09/2011 à 21:52
(Désolé Sandro, j'avais zappé que tu l'avais définie au début

)
sandro le 16/09/2011 à 18:12
Je te pardonne, les étourderies, ça arrive à tout le monde (en maths, c'est ça qui représente les 4/5 des points que je perd).
SandroPersalteas le 17/09/2011 à 14:54
Qu'il est magnanime !!

nicolas le 08/10/2011 à 20:19
est-il normal qu il n y est pas de score ???sandro le 09/10/2011 à 11:42
Il ne devrait s'afficher que quand l'on pert.
SandroMoonWalk le 09/10/2011 à 12:03
Non, quand on joue, il s'affiche en haut à gauche de l'écran, et aussi quand on perd

sandro le 09/10/2011 à 12:58
Ha oui, mince, j'avais raté le Output qui affiche S au plein milieu du code, je n'avais que vue celui à la fin.
SandroLepticed le 09/10/2011 à 15:08
Salut, y aurait-t-il un moyen de ralentir un peu les "skis"?
Cordialement, Lepticedsandro le 09/10/2011 à 17:52
Rajoute
Code
For(Z,1,xxx //remplace xxx par un nombre de ton choix : plus c'est End grand, plus ça ralentit
Juste après le CodeTouche -> K
Sandro
Lepticed le 09/10/2011 à 18:12
J'ai aussi un autre problème, le score n'augmente pas, ce qui est assez embêtant.
Lepticedsandro le 09/10/2011 à 18:19
C'est vrai, on drait qu'il manque une ligne : rajoute
juste avant le goto 0
Sandro
PS : si ça ne te dérange pas, ce serrait simpas que le temps que t'es sur l'ordi, tu ouvre une page internet avec ce lien
http://espace-ti.forumactif.com/ (un forum sur les TI également) : en essaye de batre le record de personnes qui y sont (invités et membres confondus).
Lepticed le 09/10/2011 à 18:32
C'est bon, ça marche.
Lepticed
MoonWalk le 11/10/2011 à 18:53
Ha oui ! Mes sincères excuses pour avoir oublier de recopier S+1->S
Merci Sandro ^^sandro le 11/10/2011 à 20:16
Tu pourrait éditer ton code SVP, ça évitera bien des problèmes à ceux qui recopient le premier post sans regarder les autres messages.
Sandrosimsmith78 le 24/10/2011 à 09:56
Super ton jeu

tonio 2 le 01/11/2011 à 20:03
J'adore ton jeu, génial, bravo !!!

Mais un petit détail modère mon enthousiasme : au fur et à mesure que le jeu progresse, le " skieur " avance moins vite et donc le jeu devient de plus en plus facile
Et la j'ai beau cherché je comprends vraiment pas pourquoi

sandro le 01/11/2011 à 20:10
C'est bon, j'ai trouvé pourquoi : c'est la présence de Goto dans des boucles If ouvertes : la TI ne considère pas le If comme fermé et l'enregistre donc en tant que boucle ouvert à chaque fois que le Goto est executé.
Si un goto est précédé d'un Then et suivit d'un End, suprime les deux (aussi les lignes où ils étaient), et ça devrait résoudre le bug.
Sandro
PS : ça donne donc :
Code
0->S
10->U
4->V
Lbl 0
EffEcr
1->A
1->B
entAleat(3,8->X
X-2->Y
Output(X,A,"*
Output(Y,B,"*
Output(V,U,"=
Output(1,1,S
Lbl 1
CodeTouche->K
If B et A=16
Goto 0 //ici supression du then et du end
B+1->B
A+1->A
Output(X,A-1," "
Output(Y,B-1," "
Output(X,A,"*
Output(Y,B,"*
If K=25
Then
V-1->V
Output(V+1,U," "
Output(V,U,"=
End
If K=34
Then
V+1->V
Output(V-1,U," "
Output(V,U,"=
End
If V[différent de]X-1 et A=10
Goto 3 //ici supression du then et du end
Goto 1
Lbl 3
EffEcr
Output(3,4,"GAME OVER
Output(6,3,"SCORE :
Output(6,11,S
Pause
EffEcr
tonio 2 le 01/11/2011 à 20:21
lol j'ai juste rien compris mais ca marche merci
c'est quoi la difference entre un if ouvert et fermé ?
sandro le 01/11/2011 à 20:33
quand il y a un Then, la TI considère que l'on est dans le If tant quelle n'a pas trouvé de End (même si l'on ouvre d'aures boucles, si l'on fait des sauts à l'aide de goto,... hors la TI doit ce mémoriser toute les boucles et IFs ouvert pour pouvoir savoir qu'est-ce que l'on referme avec le If qu'elle rencontre : en attendant, elle doit tout mémoriser.
Par contre, si tu ne met pas de Then, la TI considère qu'il n'y a que l'instruction sivante qui est soumise au If, et donc ne mémorisera pas l'ouverture d'une "Boucle" If.
En espérant avoir été plus clair,
Sandrotonio 2 le 01/11/2011 à 20:57
Tu l'as été, merci

yo le 09/11/2011 à 18:31
// ici toutes les instruction en cas de score parmis les 3 premiers (affiche
: //le fait que l'on ait batut un des 3 records
en gros je met quoiThe K le 09/11/2011 à 20:45
Tout ce qui, dans un code, commence par un "//" est une note du/des programmeurs, destiné à la compréhension du programme pour d'autres. En l’occurrence, tu ne copies pas

Persalteas le 09/11/2011 à 23:23
The K, lis avant de dire n'importe quoi...
Dans le code de Sandro, (là ou ces lignes sont écrites), il faut réécrire toute une partie du code précédent à la place de cette ligne. Comme je ne sais pas laquelle, je ne peux pas t'aider.
tu dois recopier la partie du code qui gère les meilleurs scores, en fait.sandro le 10/11/2011 à 19:08
non, justement, c'est là ou j'ai enlevé des choses inutiles (c'est juste pour marquer les changements).
SandroThe K le 11/11/2011 à 00:35
Persalteas ... Oui je me suis trompé. Mais je n'ai pas dit n'importe quoi.Persalteas le 11/11/2011 à 19:16
Oui, j'ai vu...
autant pour moi ! glups...
MoonWalk le 16/11/2011 à 15:54
Hoù désolé de mon absence !! Je vais éditer mon premier post pour ceux qui recopient le premier !!
Merci Sandro, grâce à toi je viens d'apprendre que les Then/End font ralentir le jeu et ne servent à rien !

sandro le 16/11/2011 à 17:42
De rien, par contre, quand il n'y a pas de goto dedans, c'est sur que ça prend moins de place de ce passer du then/end, par contre je n'ai jamais fait les tests de vitesse entre les 2 (en tout cas la différence n'est pas énorme).
SandroPersonne le 23/11/2011 à 10:43
Impossible de se deplacer vers le haut :/Personne le 23/11/2011 à 10:44
Probleme a la ligne Output(V+1,U," "
Aider moi merciThe K le 23/11/2011 à 14:05
Tu as bien mis un espace entre les deux guillemets ? Sinon, revérifie tout ton programme il n'est pas très long

Implosion le 29/11/2011 à 22:51
Bon bah ça marche pas sur ma TI 82 stats fr.
Je vois que deux symboles * qui se déplacent de haut en bas (tout a gauche de l'écran). Le programme tourne a l'infini, donc je fais "on" pour l'arreter. ça me marque "ERR : ARRET", donc je selectionne "voir", et ça me montre la fleche a la ligne
entAleat(3,8->X
Alors bon, j'ai rajouté une parenthése, donnant ainsi entAleat(3,8 )->X , (sans espace) mais ya le meme probleme et cette fois ça me montre le 1->B....
Help?

linkakro le 29/11/2011 à 22:58
Quand tu appuies sur ON, il y a toujours une erreur BREAK.
Le curseur t'indique toujours l'endroit où tu l'as arrêté mais cela ne donne aucune idée de l'erreur qui te fait tourner à l'infini.Implosion le 30/11/2011 à 16:06
ça fait ce probleme a personne? (sur TI-82 stats)luffy10000 le 06/12/2011 à 19:40
Bonjour, je viens de taper le programme sur ma calculatrice et il y a un problème après "codetouche->K" c'est sur:
"If B et A=16"
Entre "B" et "Et"linkakro le 06/12/2011 à 20:17
" et " se trouve dans le menu 2nde+maths
ps: regarde l'article du catalogue de fonctions.révélateur le 27/01/2012 à 21:01
pfff yen a qui n'ont aucun respet pour le travail des autres... tu n'est pas l'auteur de ce jeu: il est déjà présent sur ce site...

Erdnuss le 27/01/2012 à 21:44
Calme toi !!!
Si c est vrai, il aurait du idealement le signaler aux lecteur q u il l avait copie
Or, je ne crois pas trop qu il l ai copie, il a surement eu la meme idee sans le savoir. En effet, pourquoi aurait il eu autant d erreur si il avait le code tout fait ???
Citation
aucun respet pour le travail des autres
Non ! Cela permet dans chacun des cas de "rajeunir" le programme!!!
MoonWalk le 29/01/2012 à 22:20
Heu.... ?
Le programme je l'ai fait 100% moi-même de mes propres mains ! :o
Si vous voulez une preuve, j'ai toujours la version brouillon sur papier !sandro le 30/01/2012 à 22:29
Tu procède par brouillons ?!? Moi je n'en ai fait qu'un très restraint, et encore sur le plus gros de mes programmes : Calclist (plus de 10 000 octés).Persalteas le 30/01/2012 à 23:23
Moi aussi j'utilise des brouillons papier quand je code, surtout les programmes graphiques ou y'a pleins de coordonnées de points à noter...
Calclist ? tu nous l'as présenté celui là ??

sandro le 31/01/2012 à 21:57
si, mais juste une version peu avancée (la plus réscente publiée (mais encore bien buguée) est sur le site du zContest2011, et une autre est en préparation pour le TI-Concours de Noëlthebest).
Et j'y utilise des brouillons car chaque nombre ou opération est encodée, par example le signe - se traduit par : 2 dans L1, 2 dans L2 , 0 dans L3 , 1 dans L4 , 1+i dans L5 et 1+i dans L6.
SandroPersalteas le 31/01/2012 à 22:54
AOUCH.
Pourquoi un tel cryptage ? Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.