Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 20 Avr 2013, 16:21
Bonjour à tous !
EDIT: Pour ceux qui souhaitent voir le jeu allez page 3.
Voilà je me lance aujourd'hui sur ce forum dans le but de finir le programme d'un jeu de foot qui n'a pas été terminé, voir sur ce sujet. https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=1916
Voici le début du programme qui ne marche pas encore, et que je souhaiterai terminer avec votre aide.
Code
Programme foot
8 -> A
8 -> B
8 -> C
Lbl 0
EffEcr
codeTouche -> K
If K=24
A-1 -> A
If A>6 et A<10
Output(2,A,"ø
Output(3,A,"T
Output(7,7,"ø
Output(8,7,"A
Output(B,C,"°
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
If K=26
A+1 -> A
If A>6 et A<10
Output(2,A,"ø
Output(3,A,"T
Output(7,7,"ø
Output(8,7,"A
Output(B,C,"°
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Goto 0
voilà on peut déplacer le gardien, mais il peut sortir des poteaux or je souhaite qu'il reste entre les "!" (même pas sur ! , juste entre les 2).
On ne voit que sa tête ø juste quand il se trouve au centre des buts.
Pour la suite du jeu, j'aimerai qu'au bout de 5 secondes (avec un compte à rebours de 5 secondes qui s'affiche sur un coin supérieur), le ballon de l'attaquant se déplace dans les but aléatoirement avec un effet de rotation (enfin je sais pas comment définir cela) et évidemment si le gardien se met devant (qu'on déplace avec k=24 et k=26 soit flèche gauche et droite) il arrête la balle et là on affiche "BIEN JOUE" (par exemple) et s'il ne l'arrête pas, on afficherait "RATE" (par exemple).
Voilà si maintenant personne ne veut faire le programme à ma place (je n'oblige évidemment personne à le faire), j'aimerai qu'on me guide pour avoir les instructions que je viens de citer.
Bonne journée à tous !
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 20 Avr 2013, 18:33
Bon j'ai réussi à trouver pour que le gardien reste dans les buts, cependant il apparaît en clignotant, je trouve ça désagréable
Code
EffEcr
1 -> A
8 -> B
8 -> C
8 -> X
Repeat K=105
Output(2,A," "
Output(3,A," "
Output(2,X,"ø
Output(3,X,"T
Output(7,7,"ø
Output(8,7,"A
Output(B,C,"°
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
X -> A
codeTouche->K
If K=24:A-1->A
If K=26:A+1->A
If X=5:6->X
If X=11:10->X
End
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 18:38
Pourquoi extraire une partie de l'autre programme et oublier tout ce qui a déjà été fait ?
Commence par écrire une boucle contenant les affichages et les déplacements.
Ensuite code le test de sortie en fonction du temps et du ballon.
Evite de répéter un même code pour chaque action mais utilise les variables.
Sâche que le temps n'existe pas sur TI. Une variable peut être incrémentée régulièrement mais le temps correspondant dépendra du modèle de TI, du programme et de la ram ocupée.
On peut améliorer les tests en les insérant dans les calculs. EDIT : comme K=24 ici : max(5,min(9,A-(K=24)+(K=26->A
Les max et min permettent de conserver la variable A dans le bon intervalle. EDIT : donc en face de la cage
Appliquer la même méthode que ce que j'ai fait sur A avec min et max permettra de limiter le déplacement du gardien même si on enlève la limite de A.
Je n'ai pas testé. EDIT : par la suite on sait que le but était de contoler le gardien mais mon programme controle la balle.
Code
0->S // score
Repeat Z=1000 ou C=A
// même valeur de Z pour l'autre boucle et le test à la fin
While Z<1000 et B-4 // changer 1000 pour le chrono
Z+1->Z
codeTouche -> K
Output(2,A," " // efface gardien position précédente
Output(3,A," "
If K=21 // dès qu'on presse la touche 2nde pour tirer
0->D
If D // si on n'a pas encore tiré
Then
entAléat(5,9->A // position aléatoire du gardien si on a pas commencé
If K // évite de trop clignoter
Output(B,C," " // efface ballon position précédente
Else
A+1-2(C<A->A // le gardien suit le ballon
Output(B,C," " // efface ballon position précédente
B-1->B
End
For(T,1,10 // changer la valeur ou même enlever pour changer la temporisation
End
End
If Z-1000 et C-A
S+1->S
End
EffEcr
Output(1,1,"FINISHED
Output(2,1,"SCORE
Output(2,7,S
Je ne me suis pas préoccupé des clignotement pour la plupart.
Il faudrait détecter le déplacement des objets et autoriser alors l'effacement de la position précédente.
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 18:55
Je vois que j'ai écrit des choses fausses. Je confond X, A et C.
J'edite.
Je change régulièrement des choses en les mettant dans un meilleur ordre ou en changeant des variables.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 20 Avr 2013, 19:03
Je viens de tester mais il faut appuyer sur [2nde] pour que la balle se déplace (normalement elle doit le faire toute seule à la fin du compte à rebours) si je n'appuie pas le compte à rebours se termine, après la calculatrice affiche le score (qui est 0) et elle a tjrs la même trajectoire.
Je n'ai pas compris pour le gardien, il ne doit pas avoir de mouvement aléatoire, c'est la balle qui doit en avoir un. Mais merci quand même d'avoir répondu !
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 19:16
Je pensais que le gardien se déplacerais aléatoirement avant qu'on tire et suive la balle ensuite.
Pour que le chrono contrôle le départ de la balle, il faudrait utiliser un test de comparaison entre Z et 1000 dans le contrôle de B l'ordonnée du ballon.
Et supprimmer le test de Z des boucles.
Je cesse de modifier le programme puisque les objectifs ont été changés.
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 19:48
Donc j'étais à côté de la plaque.
Ce sera d'ailleurs plus simple.
Toujours pas testé.
Code
Repeat C-A
8 -> A
8 -> B
8 -> C
EffEcr
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
0->Z
Repeat B=4
Z+1->Z
codeTouche -> K
If K
Then
Output(2,A," "
Output(3,A," "
End
min(10,max(6,A-(K=24)+(K=26->A
Output(2,A,"ø
Output(3,A,"T
Output(B,C,"°
If Z<40
Then
Output(1,1,40-Z
Else
min(10,max(6,C+1-2entAléat(0,1->C // déplacement aléatoire de la balle (6 à 10)
B-1->B
End
End
If C=A
S+1->S
End
EffEcr
Output(1,1,"FINISHED
Output(2,1,"SCORE
Output(2,7,S
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 20:44
As-tu saisi un espace après le K ? Je ne vois pas d'autre erreur possible.
Normalement cela teste juste que K est non-nul.
Remplace par "If K!=0" pour voir. (!= représente "différent")
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 21:01
Pour cela remplace B=4 par B=3.
Si tu as une Ti82 non-stat, cela peut expiquer le défaut de If K.
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 21:22
Ajoute une ou plusieurs temporisations (et place les commande dans un ordre légèrement différent) pour ralentir et rester fluide.
Les temporisations se font avec des actions sans effets comme 69! ou une boucle For.
Je ne comprend pas ce que tu veux dire par ton dessin.
Si tu veux ralentir la balle par rapport au reste, tu peux utiliser une variable pour autoriser son déplacement une itération sur deux.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 20 Avr 2013, 21:31
Comme je sais pas trop où mettre les 69! que me conseilles-tu comme boucle For, mais oui c'est pour ralentir la vitesse de la balle.
mon dessin montre que la balle va à gauche puis à droite puis retourne à gauche, il faudrait juste qu'elle aille sur un côté et qu'elle change environ au milieu du trajet vers l'autre côté.
/Je viens de voir le snake de Samos
et pour la vitesse il a mis
Code
Lbl C
ClrHome
Repeat A=45
getKey→A
L+(A=25)-(A=34→L
Output(1,1,"ANNUL TO QUIT
Output(4,7,"
Output(4,6,L
End
ClrHome
End
peut-être qu'on peut s'en servir
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 22:01
Cela change seulement la variable L. C'est un réglage.
Ce qui te sera utile est la boucle qui prend L comme argument. (si je m'en souvien bien)
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 20 Avr 2013, 22:37
La boucle que tu as cité ne sert pas directement à ralentir le programme.
Elle sert à donner une valeur à la variable L et cette variable L contrôle le ralentissement du programme.
Place la boucle de samos au tout début et place For(W,1,L):End où tu veux, à la fin de la boucle centrale par exemple.
Augmente la valeur de L si tu veux augmenter le temps.
Si ce n'est pas fluide, déplace des instructions ou utilise plusieurs For.
L'endroit où les mettre est surtout expérimental.
Tu veux changer le déplacement de la balle en deux segments de diagonales ?
Il faudrait une variable de direction initialisée par un aléatoire et l'opposer une fois à une certaine hauteur ou largeur.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Lun 22 Avr 2013, 20:46
Bon normalement le jeu marche mais j'aimerai faire aussi sur ce que tu avais commencé au départ c'est à dire, c'est l'utilisateur qui tire dans la balle pendant que le gardien se déplace tout seul aléatoirement (mais cette fois-ci pas de compte à rebours), qu'il aille sur la position 1 puis 3 puis 4 puis 2 ... par exemple.
Comme ceci :
Code
Position 1
-------
!ø !
!T !
----------------
Code
Position 2
-------
! ø !
! T !
----------------
Code
Position 3
-------
! ø !
! T !
----------------
Code
Position 4
-------
! ø !
! T !
----------------
Code
Position 5
-------
! ø!
! T!
----------------
Pour la suite je saurai faire un menu, avec les deux modes de jeu et la vitesse... Mais je ne peut que le tester vendredi soir.
Et pour finir j’essaierai seul de faire le mode deux joueurs, càd un utilisateur qui fait le gardien et un autre qui tire.
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 26 Avr 2013, 17:42
Le Lbl de la vitesse de marche pas, et je ne sais pas comment faire les segments en diagonales... Et les score ne correspond pas il me met 52 par exemple alors que j'ai arrêté 2 but (il y a donc 50 de plus en trop)
Code
Lbl M
Menu("FOOT","JOUER",J,"VITESSE",V
Lbl V
EffEcr
Repeat A=45
For(W,1,L
codeTouche -> A
L+(A=25)-(A=34 -> L
Output(1,1,"ANNUL TO QUIT
Output(4,7," "
Output(4,6,L
End
EffEcr
Goto M
Lbl J
Repeat C-A
8 -> A
8 -> B
8 -> C
EffEcr
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
0->Z
Repeat B=2
Z+1->Z
codeTouche -> K
If K
Then
Output(2,A," "
Output(3,A," "
End
min(10,max(6,A-(K=24)+(K=26->A
Output(2,A,"ø
Output(3,A,"T
Output(B,C,"°
If Z<40
Then
Output(1,1,40-Z
Else
entAléat(0,1
min(10,max(6,C+1-2Rép->C
B-1->B
End
End
S+1->S
End
EffEcr
Output(1,1,"FINISHED
Output(2,1,"SCORE
Output(2,7,S
Pause
Goto M
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 26 Avr 2013, 18:10
Il manque l'initialisation du score.
La boucle For que tu as utilisé ne sert à rien. Il n'est pas question de placer l'initialisation de L à l'intérieur d'une boucle qui se répète L fois... Mais d'initialiser L puis d'utiliser L ailleurs.
Et on peut se passer de boucle Repeat du Lbl V en utilisant simplement une saisie avec Prompt ou Input.
J'ai placé des boucles de temporisation un peu partout. Fais de même en choisissant des endroits qui conviennent.
EDIT : j'ai corrigé l'effacement de la balle et son affichage. Globalement il faut effacer, calculer puis afficher ou bien utiliser des variables mémoire de la position précédente.
EDIT : limitation de L 0 à 10
Code
Lbl M
Menu("FOOT","JOUER",J,"VITESSE",V
Lbl V // d'ici à Lbl J remplaçable par un prompt
EffEcr
Repeat A=45
codeTouche -> A
min(10,max(0,L+(A=25)-(A=34 -> L // EDIT
Output(1,1,"ANNUL TO QUIT
Output(4,7," "
Output(4,6,L
End
EffEcr
Goto M
Lbl J
0->S // initialisation du score
Repeat C-A
8 -> A
8 -> B
8 -> C
EffEcr
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
0->Z
Repeat B=2
Z+1->Z
For(W,1,L):End
codeTouche -> K
If K
Then
Output(2,A," "
Output(3,A," "
End
For(W,1,L):End
min(10,max(6,A-(K=24)+(K=26->A
For(W,1,L):End
Output(2,A,"ø
Output(3,A,"T
For(W,1,L):End
If Z<40
Then
Output(1,1,40-Z
Else
Output(B,C," " // effacement de la balle précédente
min(10,max(6,C+1-2entAléat(0,1->C
B-1->B
End
Output(B,C,"° // nouvelle balle
End
S+1->S
End
EffEcr
Output(1,1,"FINISHED
Output(2,1,"SCORE
Output(2,7,S
Pause
Goto M
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 26 Avr 2013, 18:42
min(10,max(0,L+(A=25)-(A=34 -> L
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 27 Avr 2013, 15:59
De quelle façon testes-tu ce programme ?
Si tu l'émules sur un ordinateur en réinitialisant la calculatrice virtuelle entre chaque essai, alors le pseudo-aléatoire de la calculatrice est réinitialisé et la trajectoire est chaque fois la même.
J'avais légèrement modifié la syntaxe de l'aléatoire en le mettant directement dans le calcul d'abscisse, alors vérifies que cela correspond.
min(10,max(6,C+1-2entAléat(0,1->C
Le programme tel qu'il est écrit dans le dernier message devrait générer une trajectoire parfaitement aléatoire.
As-tu tenté de modifier son comportement pour obtenir l'unique changement de direction comme tu le voulais ? Si c'est le cas alors il est clair qu'il y a un problème et je te proposes cette version.
EDIT: j'ai déplacé la création de D qui n'était pas dans la boucle Repeat C-A
Code
Lbl M
Menu("FOOT","JOUER",J,"VITESSE",V
Lbl V
EffEcr
Repeat A=45
codeTouche -> A
min(10,max(0,L+(A=25)-(A=34 -> L
Output(1,1,"ANNUL TO QUIT
Output(4,7," "
Output(4,6,L
End
EffEcr
Goto M
Lbl J
0->S
Repeat C-A
8 -> A
8 -> B
8 -> C
EffEcr
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
1-2entAléat(0,1->D // initialisation de la direction avec 1 ou -1
0->Z
Repeat B=2
Z+1->Z
For(W,1,L):End
codeTouche -> K
If K
Then
Output(2,A," "
Output(3,A," "
End
For(W,1,L):End
min(10,max(6,A-(K=24)+(K=26->A
For(W,1,L):End
Output(2,A,"ø
Output(3,A,"T
For(W,1,L):End
If Z<40
Then
Output(1,1,40-Z
Else
Output(B,C," "
min(10,max(6,C+D->C
B-1->B
End
If not(entAléat(0,4
-D->D
// Le changement de direction est aléatoire, mais on peut fixer une autre condition ou augmenter la probabilité en diminuant 4
// Si la condition n'est pas aléatoire, le comportement sera sensiblement différent de celui des programmes précédents. Une position fixée donnera un comportement plus proche de celui que tu voulais. Cependant je préfères qu'il y ait au moins un peu d'aléatoire comme ici pour augmenter la difficulté. De plus l'aléatoire ici présent n'est pas équiprobable comme avant.
// On peut déplacer ces deux lignes avant le calcul de déplacement
Output(B,C,"°
End
S+1->S
End
EffEcr
Output(1,1,"FINISHED
Output(2,1,"SCORE
Output(2,7,S
Pause
Goto M
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Sam 27 Avr 2013, 17:08
Citer : linkakro
Code
// Le changement de direction est aléatoire, mais on peut fixer une autre condition ou augmenter la probabilité en diminuant 4
// Si la condition n'est pas aléatoire, le comportement sera sensiblement différent de celui des programmes précédents. Une position fixée donnera un comportement plus proche de celui que tu voulais. Cependant je préfères qu'il y ait au moins un peu d'aléatoire comme ici pour augmenter la difficulté. De plus l'aléatoire ici présent n'est pas équiprobable comme avant.
// On peut déplacer ces deux lignes avant le calcul de déplacement
Je teste tout avec ma calculatrice (réelle), je te réponds dans quelques minutes.
EDIT: malheureusement ça ne marche tjrs pas, j'attends que tu mettes tes conditions, car je ne sais pas faire, dsl.
Et dsl pour le spam tout à l'heure.
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 27 Avr 2013, 20:38
Prend comme condition B=6 et ça suffira. Cela fera les segments de diagonales dont on a parlé.
Je suis étonné par ton abscence d'aléatoire.
Je vais regarder de plus près.
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 27 Avr 2013, 21:38
Non je parle d'écrire ceci à la place des deux lignes qui précèdent mon pavé de commentaire.
Code
If B=6
-D->D
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 28 Avr 2013, 0:01
J'ai trouvé ce qui cloche dans le programme à variable D : j'ai placé le premier aléatoire en dehors de la boucle Repeat C-A.
J'édite plaçant la ligne dans la boucle.
Je ne sais pas ce qui clochait dans la version précédente.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Dim 28 Avr 2013, 12:29
ça marche !
Maintenant que cette étape est terminé, JE vais ESSAYER (donc j'aurai sûrement besoin d'aide) de faire l'inverse c'est à dire que l'utilisateur dirige le ballon, tire dedans en ligne droite et le gardien aura des déplacements aléatoires. (je mettrai ce topic dans un autre sujet)
Une fois terminée j'essaierai de faire le mode deux joueurs... (dans un autre sujet)
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Dim 28 Avr 2013, 13:43
Derniers détails:
1°) Le compte à rebours s'affiche comme ça
40 - 39 - 38 - ... - 10 - 90 - 80 - 70- ...
Est ce qu'on peut avoir après 10 :
09 - 08 - 07 - ... voire 10 - 9 - 8 - 7 - ...
2°) Pour la vitesse
Il faut augmenter (avec les flèches) pour que le jeu se ralentisse c'est à dire
à 0 le jeu est a vitesse normale et à 10 à vitesse lente.
Peut on faire l'inverse ?
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 28 Avr 2013, 14:43
1°) Le plus simple est d'effacer le nombre entre deux affichages.
Ainsi on a ...-11-10-9_-8_-...
Code
Output(1,1," "
Output(1,1,40-Z
Mais si tu veux vraiment avoir ...-11-10-09-08-... il faudra tester l'échelle du nombre pour modifier l'abscisse et afficher un zéro supplémentaire.
L'échelle va de 1 à 2 chiffres donc on s'occupe d'une comparaison à 10.
(pour faire plus général on pourrait utiliser un logarithme mais cela pose des problèmes en zéro)
Code
Output(1,1+(Z>30),40-Z
If Z>30
Output(1,1,"0
J'affiche zéro comme un caractère pour ne pas avoir à toucher aux modes Normal et Float. D'ailleurs on aurait dû y penser avant.
Pense aussi que tu peux initialiser Z à 40 et le décrémenter dans la boucle plutôt que de calculer 40-Z et d'initialiser à zéro. Cela change aussi les tests de Z.
2°) Oui, en remplaçant les boucles de tempo par For(W,1,10-L):End
On peut aussi utiliser une variable intermédiaire afin de nepas calculer la borne chaque fois.
---------------------- 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 : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 28 Avr 2013, 17:26
Tu devrais vraiment citer tes sources. Au moins citer le forum tout82.free.fr.
Je ne suis pas emballé par une vidéo qui sert à peine à placer un lien vers un téléchargement dans la description. Personnellement ce serait plus intéressant avec une capture du programme.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Dim 28 Avr 2013, 21:03
dak je ferai ça dans les jours qui viennent...
D'après le webmaster
2) Les internautes peuvent déposer librement les programmes de leur création. En les déposant sur ce forum, ils accèptent qu'ils devienent libre de droit, c'est à dire que chacun peut les copier, modifier et les redistribuer sur un autre site.
---------------------- visitez ma page ti82stats.fr
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 28 Avr 2013, 21:47
Bien sûr que les droits sont libres, mais cela n'empêche pas de citer les sources et le faire fort appréciable.
---------------------- 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 : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Lun 29 Avr 2013, 18:08
Et voici le programme :
Tout d'abord faire
[ON]+[pgrm]+2[flèche droite]+[entrer]
Puis avec la touche [alpha] tapez le nom du jeu avec les touches des lettres qui sont en vert
au dessus des touches. Puis une fois le programme nommé faites [entrer]. Rentrer le programme
Instructions:
-> touche [sto ->] et pour faire = < > différent de... [2nde]+[math]
En français:
Code
Lbl M // [2nde]+[0], tapez la touche où il y a le L (donc [)] et descendez jusqu'à Lbl puis faites [entrer]
Menu("FOOT","JOUER",J,"VITESSE",V // idem pour menu / " se fait avec [alpha]+[+]
Lbl V
EffEcr // comme menu
Repeat A=45 // [pgrm]+[6]
codeTouche -> A // comme menu
min(10,max(0,L+(A=25)-(A=34 -> L // idem
Output(1,1,"ANNUL TO QUIT // idem
Output(4,7," "
Output(4,6,L
End // [pgrm]+[7]
EffEcr
Goto M // comme menu
Lbl J
(-)1->S // (-) se fait avec la touche en dessous de 3
Repeat C-A
8 -> A
8 -> B
8 -> C
EffEcr
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
Output(7,7,"ø
Output(8,7,"A
1-2entAléat(0,1->D // entAléat en un mot comme pour menu
0->Z
Repeat B=2
Z+1->Z
For(W,1,10-L):End // dans pgrm
codeTouche -> K
If K // idem
Then
Output(2,A," "
Output(3,A," "
End
For(W,1,10-L):End
min(10,max(6,A-(K=24)+(K=26->A
For(W,1,10-L):End
Output(2,A,"ø // ø [alpha]+[3]
Output(3,A,"T
For(W,1,L):End
If Z<10
Then
Output(1,1,10-Z
Else
Output(B,C," "
min(10,max(6,C+D->C
B-1->B
End
If non(entAléat(0,4
-D->D
Output(B,C,"° // comme menu mais déplacez vous avec flèche haut, ° se trouve après r
End
S+1->S
End
EffEcr
Output(1,1,"FINIS
Output(2,1,"SCORE
Output(2,7,S
Pause
Goto M
En anglais:
Code
Lbl M // [2nde]+[0], tapez la touche où il y a le L (donc [)] et descendez jusqu'à Lbl puis faites [entrer]
Menu("FOOT","JOUER",J,"VITESSE",V // idem pour menu / " se fait avec [alpha]+[+]
Lbl V
ClrHome // comme menu
Repeat A=45 // [pgrm]+[6]
getKey -> A // comme menu
min(10,max(0,L+(A=25)-(A=34 -> L // idem
Output(1,1,"ANNUL TO QUIT // idem
Output(4,7," "
Output(4,6,L
End // [pgrm]+[7]
ClrHome
Goto M // comme menu
Lbl J
(-)1->S // (-) se fait avec la touche en dessous de 3
Repeat C-A
8 -> A
8 -> B
8 -> C
Clrhome
Output(1,5,"-------
Output(2,5,"! !
Output(3,5,"! !
Output(4,1,"---------------
Output(B,C,"°
Output(7,7,"ø
Output(8,7,"A
1-2randInt(0,1->D // randInt en un mot comme pour menu
0->Z
Repeat B=2
Z+1->Z
For(W,1,10-L):End // dans pgrm
getKey -> K
If K // idem
Then
Output(2,A," "
Output(3,A," "
End
For(W,1,10-L):End
min(10,max(6,A-(K=24)+(K=26->A
For(W,1,10-L):End
Output(2,A,"ø // ø [alpha]+[3]
Output(3,A,"T
For(W,1,L):End
If Z<10
Then
Output(1,1,10-Z
Else
Output(B,C," "
min(10,max(6,C+D->C
B-1->B
End
If not(randInt(0,4
-D->D
Output(B,C,"° // comme menu mais déplacez vous avec flèche haut, ° se trouve après r
End
S+1->S
End
EffEcr
Output(1,1,"FINIS
Output(2,1,"SCORE
Output(2,7,S
Pause
Goto M
---------------------- visitez ma page ti82stats.fr