Jeu pour TI 82 stat.fr "Course" |
Auteur |
Message |
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 18:00
|
|
|
Voici mon premier jeu pour TI 82 stat.fr
Vous contrôlez une voiture en utilisant les flèches.
Vous devez rester sur la route et éviter le "virages" qui peuvent arriver à tout moment.
Ceci est la version final du programme.
Voici le programme à taper :
Code |
EffEcr
1->E
8->X
1->Y
7->A
0->Z
0->T
4->B
4->O
4->F
4->I
4->G
4->K
4->L
4->Y
4->N
0->S
1->W
4->H
For(W,1,7)
Disp ''/////) (///// ( 4 espaces entre les parentheses )
End
While E=1
Lbl A
T+1->T
Z+1->Z
Disp "/////) (///// (4 espaces entre les parenthèses)
Y->O
O->F
F->G
G->I
I->K
K->L
Output (1,X,"V
codeTouche->M
If M=24
X-1->X
If M=26
X+1->X
If X \< 6 (\< : inférieur ou égal)
2->E
If X>/ 11 (>/ : supérieur ou égal)
2->E
EntAléat (2,3)->H
If T\<2:Goto A
0->T
Disp ''/////) (///// (4 espaces entre les parentheses)
Disp ''/////) (///// (4 espaces entre les parentheses)
Output (1,X,''V
H->Y
If H=2
Output (A,1,"/////) (/////// (2 espaces entre les parenthèses)
If L=2 et X>/ 9
2->E
If H=3
Output (A,1,"///////) (///// (2 espaces entre les parenthèses)
If L=3 et X \< 8
2->E
End
EffEcr
Disp " (Un espace après les ")
Disp "GAME OVER"
Disp "SCORE :" ,Z
Disp ''MADE BY JROCK''
Pause
EffEcr |
Et voilà, dites moi ce que vous en pensez.
|
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 18:12
|
|
|
Slt!
Pas mal pour un début
Juste quelques trucs: met la balise code la prochaine fois (si possible, édite le message), ça améliore la lisibilité
Code | For(T,1,4)
T+1->T
End |
Je ne comprends pas l'utilité de ce passage
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 18:21
|
|
|
Merci, mais aurais tu d'autres conseils pour que le jeu détecte mieux les collisions ?
Ce passage sert à retarder le départ des "virages", mais je ne sais pas s'il est utile.
|
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 18:28
|
|
|
Pourquoi utiliser 2 aléatoires?
1 seule aurait suffit, et les collisions seraient plus faciles à gérer (à mon avis)
EDIT:
Code | If Q=2 et (A=1 et X \< 8 ) |
Peut devenir:
Code | If Q=2 et A=1 et X \< 8 |
(les parenthèses sont inutiles avec les et tout seuls
Heu... il y a juste un os: les virages n'apparaissent pas tous au "fond": si je comprends bien, on perds dès qu'un virage apparait sur sa voiture...
Pour bien vérifier les collision (et pouvoir éviter les virages), il aurait fallu les faire apparaître tous en bas de l'écran, et stocker leur position dans des variables
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 18:53
|
|
|
J'ai modifié les aléatoires, mais je dois encore travailler pour modifier le problème des virages.
|
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 18:54
|
|
|
Bonne chance!
Et n'hésites pas à demander si tu as besoin d'aide ou d'un tuyau
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 18:58
|
|
|
Pourrais tu m'aider pour l'apparition des virages car il apparaissent en fonction de A qui change, mais ils se déplacent aussi à cause des Disp, et A est nécessaire pour les collisions, j'ai donc du mal à voir comment faire.
|
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 19:26
|
|
|
J'ai réussi à modifier l'apparition des virages pour qu'ils apparaissent tous en bas de l'écran, mais j'ai toujours un gros problème acec les collisions : je ne trouve pas de moyen pour que la collision se fasse au bon moment.
|
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 19:33
|
|
|
Il faut que tu utilises plusieurs variables: 1 pour la ligne tout en bas, une pour celle juste après... jusqu'à celle tout en haut. Tu teste la collision avec celle "tout en haut", puis tu décale le contenu de toutes ces variables.
Je n'ai peut être pas été clair, demande moi si tu ne comprends pas quelque chose
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 19:42
|
|
|
Je ne vois pas comment utiliser les variables de chaque ligne car les virages descendent tout seul, pourrait tu expliquer comment les utiliser ou donner un exemple s'il te plait ?
|
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 19:54
|
|
|
Tout d'abord, il faut afficher un terrain sur tout l'écran (je te laisse faire avec un for), puis initialiser les variables de ligne:
Code | 3->A //Ici, 3 signifie qu'il n'y a pas de virage, tu peux mettre le chiffre que tu veux, le tout c'est qu'un chiffre corresponde à un état de la ligne (genre 1 = décalé vers la gauche, 2 = décalé vers la droite)
3->B
3->C
3->D
3->E
3->F
3->G //il y a donc 7 lignes
While E = 1 //On rentre dans la boucle du prgm
//ici, tu affiches la nouvelle ligne et tu stoque son "état" dans H (par ex)
//Tu teste ensuite la position du véhicule par rapport à A, et tu mets E à 2 si perdu
B->A
C->B
D->C
E->D
F->E
G->F
H->G //On décale les lignes
End |
Si c'est pas clair, demande moi (j'ai conscience de ne pas très bien expliquer )
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 03 Oct 2012, 20:06
|
|
|
C'est la méthode la plus simple.
(on peut remplacer la seconde série de sto par d'autres techniques mais on ne va pas t'embrouiller avec ça d'autant que la méthode globale est la même)
---------------------- 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 |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Mer 03 Oct 2012, 21:33
|
|
|
J'ai fait la partie où on doit décaler les lignes, mais je n'ai toujours pas compris la partie où on stock l'état : faut-il que mettre 3->H ?
Je n'ai pas compris comment tester la position du véhicule par rapport à A.
Désolé de ne pas comprendre rapidement et de te poser tant de questions.
J'espère mieux comprendre en relisant, mais je ne suis pas sûr de réussir
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 03 Oct 2012, 21:45
|
|
|
A représente en permanence l'état de la route à l'emplacement de la voiture.
Chaque autre lettre jusqu'à G représente l'état de la route ligne par ligne.
A chaque boucle la variable A est remplacée par B, B par C et ainsi de suite jusqu'à G qui reçoit H le nouvel aléatoire.
H est donc temporaire et sert seulement pour la génération de l'aléatoire.
Le remplacement de A par B sert à ce que la ligne de route face à la voiture prenne la place de celle qui était sous les roues. Ainsi de suite jusqu'à G qui reçoit la nouvelle ligne de route.
Enfin il suffit de comparer la position latérale de la voiture avec la variable A représentant la route sous ses roues.
---------------------- 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 |
|
|
|
m@thieu41
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
|
Posté le : Mer 03 Oct 2012, 21:56
|
|
|
Je vais essayer de tout bien expliquer :
_Quand tu fais apparaître la ligne du bas, il y a plusieurs cas: virage à gauche, virage à droite, tout droit etc... He bien tu dois associer un chiffre à chaque cas (genre 1 = virage à droite ; 2 = virage à gauche ; 3 = tout droit etc...). Tu stockes ce chiffre dans H, qui sera ensuite mis, au prochain décalage, dans G.
_Après 7 tours, la ligne arrive tout en haut, et la valeur contenue à l'origine dans H se retrouve dans A. Il faut donc tester la collision du véhicule avec la ligne du haut (du coup, il faut le tester à tous les tours). Tu fais alors un :
Code | If A = 1 et (X < 3 ou X > 12) ou A = 2 et (X < 5 ou X > 14) ou A = 3 et (X < 4 ou X > 13)
2->E |
->Si a = 1 (virage à droite) et que (X < 3 ou X > 12 (On est sorti des limites pour le virage à droite, met ici les vrais valeurs)) ou que virage à gauche et qu'on est sorti des limites du virage à gauche ou que...
Alors on a perdu
J'espère avoir éclairci certains points, n'hésites pas à redemander, c'est comme ça qu'on progresse
---------------------- Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)
Et au fait: la politesse n'a jamais tué personne |
|
|
|
Samos
Autorisation : Membre
Nb de messages : 300
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Ven 05 Oct 2012, 19:36
|
|
|
Je ne devrais peut-être pas poster mais
Code |
EffVar L1 7->dim(L1
L1 -> L2
For(X,1,7
Disp "
End
1 -> K
Repeat X<=6 ou X>=11 ou X=L1(K) ou X=L2(K
entAleat(6,7 -> A
A+entAleat(3,4 -> B
For(C,I,A
Output(8,C,"/
End
For(C,B,16
Output(8,C,"/
End
codeTouche
X+(Rep=26)-(Rep=24 -> X
B -> L2(K
A -> L1(K
1+ K(K#7 -> K
Disp "
Output(1,X,"V
End
|
Bon il doit y avoir quelques optimisations encore (et bugs à résoudre).
Niveau vitesse ce n'est pas super.
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Ven 05 Oct 2012, 20:01
|
|
|
astuce pour la méthode précédant le post de samsam :
un bug de SortA() permet de provoquer le défilement des listes facilement (même pas besoin d'utilise une liste d'index)
SortA(L1,L2,L3,...) place le premier terme de chaque liste à la fin si L1 est nulle (uniforme suffit mais cela ajoute des contraintes d'initialisation)
----
Précise quand tu changes de méthode par rapport à celle dont on parle précédemment.
Cette nouvelle méthode me rappelle vaguement ce que je n'avais jamais vu dans le forum avant ma propre expérience. On ne change pas une équipe qui gagne.
(je veux parler de l'usage de K comme pointeur)
astuce : un For est plus léger mais beaucoup plus lent qu'un Output
astuce : réduire au maximum le nombre de sto et d'invocations de listes dans le programme est efficace pour accélérer
astuce : utiliser IS>() peut être plus lourd en code que K(K#7)+1->K mais probablement plus rapide que le calcul.
---------------------- 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 |
|
|
|
JRock007
Autorisation : Membre
Nb de messages : 10
Inscrit le : Mer 03 Oct 2012, 17:32
|
Posté le : Ven 12 Oct 2012, 22:12
|
|
|
J'ai enfin terminé le programme et j'ai édité le pessage, le code est donc le bon. Merci pour votre aide et bon jeu.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
perdu
Invité
|
Posté le : Sam 13 Oct 2012, 19:31
|
|
|
salut
euh... je suis perdu là quelqu'un pourrais mettre le programme final sa serais simpa merci
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
Cytropus
Autorisation : Membre
Nb de messages : 409
Inscrit le : Lun 07 Nov 2011, 12:09
|
Posté le : Sam 13 Oct 2012, 20:24
|
|
|
Le premier
le message a été édité.
---------------------- Le nouveau site de tout82 |
|
|
|