Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 6959
Réponses : 68
Type : discussion
Etat : réponses autorisées

VOITURE BY SNAP - Page 1 / 2

snap le 17/10/2011 à 16:34
Salut à tous! et oui encore moi! Je suis productif ces temps ci bigmouth.gif Il y a pas longtemps je me suis souvenu d'un jeu que j'avais eu en seconde et j'avais toujours essayé de le refaire mais je n'y arrivais jamais. (Et je pouvais pas voir l'autre jeu car il était bloqué par protect ahh.gif). Et aujourd'hui Je l'ai fait! J'y suis arrivé! Alors je vous le poste.

VOITURE : (Taille : 239 Octets)

Code

:Effecr
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(A/2:Output(A/2,1,"*
:If non(PartDéc(A/2:Output(A/2,16,"*
:End
:Output(4,2,"VOITURE BY SNAP
:Pause
:EffEcr
:Disp"","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:8 -> X
:0 -> S
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "Perdu! Score :
:S
made2kill le 17/10/2011 à 20:18
C'est pas mauvais et passe-temps mais basique.

Essaie de le faire en graphique. (je maitrîse pas le getkey donc je peux pas le faire)
snap le 17/10/2011 à 20:42
wé ok je vais test mais le graphique sa réduit beaucoup la vitesse notgood.gif mais je vais voir si je peut arriver a le mettre à à peu près la meme vitesse
sandro le 17/10/2011 à 20:52
à quoi sert la ligne des Disp"","","","","","",""," et le Disp" ?

en tout cas c'est bien court comme programme

Sandro

PS : si tu veut le mette en graphique, tu peut à la limite faire avan,cer la voiture de plusieurs pixels à la fois.
snap le 18/10/2011 à 10:20
Salut! Sandro, pour les sept fois "", c'est pour que le prochain disp fasse monter l'écran d'un cran ce qui donne l'impression que la voiture avance. Par exemple, essaie de faire un programme ou tu met :

Code

:EffEcr
:Disp "","","","","","","
:For(A,1,50
:69!:69!:69!:69!
:If partDéc(A/2:Output(8,8,"O
:Disp "
:End


Tu comprendra peut-être mieux.
Mais le truc pour faire en graphique c'est que je pourrais plus utiliser la méthode du disp notgood.gif alors faudra que je change tout^^ Donc je vais surement pasle faire parce que si on change la méthode du disp, sa ira beaucoup moins vite et ce ne sera pas jouable. Après libre à vous d'essayer bigmouth.gif
Persalteas le 18/10/2011 à 13:32
Pas bête comme idée en fait... j'y aurait pas pensé.

clown.gif
MoonWalk le 18/10/2011 à 20:30
Hoù là ! Bravo ! Très fluide, et la difficulté est ni trop facile ni trop dure ! happy.gif
Bonjour le 18/10/2011 à 21:23
Bonjour! Ma calculatrice affiche erreur à
Citation
X >= A et X <= A+1
. Quel est le problème? Merci d'avance!
snap le 18/10/2011 à 21:35
le signe <= et >= veulent dire supérieur ou égal et inférieur ou égal. C'est pas égal + supérieur. C'est les signe que t'as en faisant seconde + math + 4 ou 6
sandro le 18/10/2011 à 22:25
Pas mal le truc, je n'ai jamais pensé à décaler le texte affiché à l'aide d'un OutPut grâce à un disp.

Merci beaucoup

sandro
Persalteas le 18/10/2011 à 22:46
Ouais, là tu nous apprend une technique ^^

Merci !
snap le 19/10/2011 à 11:37
Snap en direct du lycée! bigmouth.gif

Tout le plaisir est pour moi^^ mais bon cette technique y a pas beaucoup de jeu qui en ont besoin^^
sandro le 19/10/2011 à 12:59
même pour un programme de maths ça peut sevir : si on veut affficher des choses en divers endroit d'unne même ligne, on est obligé d'utiliser des Imput, mais grâce à ta technique, on poura aussi les décaler vers le haut pour en afficher des nouveaux sans tout reafficher.

Sandro
snap le 19/10/2011 à 13:19
Wé pourquoi pas^^ Voila une version avec un meilleur score si jamais quelqu'un veut^^

Code

:1 -> dim(LRA
:Effecr
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(A/2:Output(A/2,1,"*
:If non(PartDéc(A/2:Output(A/2,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp"","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:8 -> X
:0 -> S
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "Perdu! Score :",S
:If S>LRA(1 : Then
:S -> LRA(1
:disp "RECORD BATTU!!
sandro le 19/10/2011 à 13:35
Deux petites trucs:
Code
:8 -> X
:0 -> S

Peut ce simplifier en
Code
EffVar S8 -> X


Et
Code
:Disp "Perdu! Score :",S       // il faudrait mettre en majuscules.
snap le 19/10/2011 à 13:40
Merci pour ces amélio^^ je pense jamais au effVar^^ et ensuite pour les majuscules pas besoin et en plus si je me souviens bien toute les lettres que j'ai mit peuvent être en minuscule sur la calto
sandro le 19/10/2011 à 17:31
Non, pas le O. Sinon, autant bien éditer, ça évitera que les débutant doivent demander comment faire.

Sandro
made2kill le 19/10/2011 à 18:00
Amélioration du prog avec un mode score et le nom du high scorer plus les améliorations de sandro winkle.gif
Code
:EffEcr
:Menu("JOUER",J,"SCORES",S,"QUITTER",Q
:Lbl J
:1 -> dim(LRA
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(.5A:Output(.5A,1,"*
:If non(PartDéc(.5A:Output(.5A,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp "","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:EffVar S8 -> X
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "PERDU! SCORE :",S
:If S>LRA(1 : Then
:S -> LRA(1
:Disp "RECORD BATTU!!
:Pause
:EffEcr
:Input "ENTER NAME",Str8
:Stop
:Lbl S
:Disp "HIGH SCORE:",LRA(1),"BY:",Str8
:Lbl Q
snap le 19/10/2011 à 19:00
Edite ton post et met le nom du mec qui a fait le high score dans la présentation winkle.gif Et je viens de remarquer un truc : Ta pas mit de titre a ton menu!! Erreur syntaxe! ^^
snap le 20/10/2011 à 18:39
Bon, vu que made2kill ne se manifeste pas, je vous poste le programme corrigé.

Code

:Lbl 4
:EffEcr
:Menu("******************","JOUER",J,"QUITTER",Q
:Lbl J
:1 -> dim(LRA
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(.5A:Output(.5A,1,"*
:If non(PartDéc(.5A:Output(.5A,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(7,4,"BY:
:Output(7,8,Str8
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp "","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:EffVar S8 -> X
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "PERDU! SCORE :",S
:If S>LRA(1 : Then
:S -> LRA(1
:Disp "RECORD BATTU!!
:Pause
:EffEcr
:Input "ENTER NAME",Str8
:End
:Goto 4
:Lbl Q
:Effecr
:Output(1,1,"
SS4TI-82 le 20/10/2011 à 20:16
Bonsoir, en recopiant ton corrigé Snap sur ton dernier message, jé une erreur sur la ligne 5
Code
:1 -> dim(LRA


Lorsque je met voir : le curseur se place sur le "R" ahh.gif

J'aimerais Rémédier à sa svp ?

Sinon perso je trouve ton jeu super (apres test de la version publié sans les High Scores!) cupsmiley.gif
sandro le 20/10/2011 à 20:21
le L est celui qui est dans le menu liste/OPS tout en bas et non la lettre.

Sandro
made2kill le 20/10/2011 à 20:24
Pfff.

Bien la peine que je me casse les burnes à faire une nouvelle version (même si j'avais fait des erreurs d'inattention, et puis je peux pas me manifester tout le temps, j'ai une vie hein.).

Tu as une 82?

Si oui, remplace "LRA" par "L6" ([2nde] + [6]).

Sinon, fais [2nde] + [0] + [)] + [ENTER] pour le "L".

Laisse le "RA" en majuscules comme tu l'avais mis.

made2kill aka M2K
SS4TI-82 le 20/10/2011 à 20:52
Merci à Sandro et made2kill pour leur réponse très rapide.

Mais maintenant J'ai une erreur INDEFINI sur "Str8" dit "Chaîne8" sur Ma TI.

Code
:Output(7,8,Chaîne8


...

(Je suis pas doué , je sais ^^)
sandro le 20/10/2011 à 21:11
C'est un petit problème du à la méthode de la chaîne pour enregistrer un meilleur score : on ne peut pas l'initialiser depuis le programme sous peine de perdre les meilleurs scores.

Il te faut donc faire, sur l'écran de calcul, "????? -> Chaîne8 (si tu veux, tu peut remplacer les points d'intérogations par autre chose). Ensuite, tant que tu ne suprime pas Chaîne8, tu n'aura pas à refaire la manip.

Sandro
simsmith78 le 20/10/2011 à 21:58
J'ai testé le 1er programme sur ma Ti82Stats.fr et le jeu marche mais le "O" avance indéfiniement sans obstacles karate.gif
SS4TI-82 le 20/10/2011 à 22:07
sandro a écrit :
C'est un petit problème du à la méthode de la chaîne pour enregistrer un meilleur score : on ne peut pas l'initialiser depuis le programme sous peine de perdre les meilleurs scores.

Il te faut donc faire, sur l'écran de calcul, "????? -> Chaîne8 (si tu veux, tu peut remplacer les points d'intérogations par autre chose). Ensuite, tant que tu ne suprime pas Chaîne8, tu n'aura pas à refaire la manip.

Sandro


Dac Merci à toi Sandro winkle.gif
Marche nikel
snap le 21/10/2011 à 15:34
simsmith, vérifie bien que tu as exactement bien recopié le programme. Et regarde surtout si tu as bien noté :

Code

:Output(E,7,"{}


Sinon je ne vois pas pourquoi il n'y aurait pas d'obstacles notgood.gif
simsmith78 le 21/10/2011 à 19:18
Eh bien j'avais bien inversé le 7 et le E ^^'
Maintenant, il n'y a vraiment plus aucun obstacle alors qu'avant il n'y en avait que sur le long du bord gauche ...
J'ai bien reverifié le prog mais rien ne change maxiangry.gif
snap le 21/10/2011 à 19:20
sa c'est pas normal... Revérifie bien tout le programme ligne par ligne parce que pour les autres sa marche alors sa doit être une erreur de frappe. Ou sinon prend le dernier programme et regarde si tu as le même problème
simsmith78 le 21/10/2011 à 19:24
Parfait c'est bon, plus aucune erreur happy.gif
Je suis vraiment une bille en relecture...
Super ton jeu glasses.gif glasses.gif glasses.gif
snap le 21/10/2011 à 19:27
Merci^^ Bon jeu à toi bigmouth.gif

PS : je le savais bien que mon jeu marchait^^
simsmith78 le 21/10/2011 à 23:01
made2kill a écrit :
Amélioration du prog avec un mode score et le nom du high scorer plus les améliorations de sandro winkle.gif
Code
:EffEcr
:Menu("JOUER",J,"SCORES",S,"QUITTER",Q
:Lbl J
:1 -> dim(LRA
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(.5A:Output(.5A,1,"*
:If non(PartDéc(.5A:Output(.5A,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp "","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:EffVar S8 -> X
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "PERDU! SCORE :",S
:If S>LRA(1 : Then
:S -> LRA(1
:Disp "RECORD BATTU!!
:Pause
:EffEcr
:Input "ENTER NAME",Str8
:Stop
:Lbl S
:Disp "HIGH SCORE:",LRA(1),"BY:",Str8
:Lbl Q


Comment faire Str8 please??? moodforlove.gif
snap le 22/10/2011 à 07:08
Str 8 veut dire chaîne 8 que tu trouves en faisant var + 7 + 8
made2kill le 22/10/2011 à 09:50
Hmm. Décidément ce Str8 pose beaucoup de souçis aux programateurs débutants.
snap le 22/10/2011 à 11:15
Les nouveaux programmateurs ont souvent des ti-82 stats.fr c'est pour sa^^ Moi l'année dernière en seconde toute ma classe l'avait^^
simsmith78 le 22/10/2011 à 11:21
Ah d'accord je comprends
Merci beaucoup a vous mais j'ai une derniere question (desolé) comment réinitialiser le meilleur score de ce jeu?
snap le 22/10/2011 à 11:30
Pour réinitialiser, tu tapes :

Code

:0 -> LRA(1


et sa te remettra le meilleur score a 0
simsmith78 le 22/10/2011 à 11:54
Merci encore
made2kill le 22/10/2011 à 12:48
Enième amélioration avec la possibilité de reset le high score

Code
:EffEcr
:Lbl 99
:Menu("JOUER",J,"SCORES",S,"QUITTER",Q
:Lbl J
:1 -> dim(LRA
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(.5A:Output(.5A,1,"*
:If non(PartDéc(.5A:Output(.5A,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp "","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:EffVar S8 -> X
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "PERDU! SCORE :",S
:If S>LRA(1 : Then
:S -> LRA(1
:Disp "RECORD BATTU!!
:Pause
:EffEcr
:Input "ENTER NAME",Str8
:Stop
:Lbl S
:Menu("SCORES","SEE HIGH SCORE",11,"RESET HIGH SCORE",12,"BACK",99
:Lbl 11
:Disp "HIGH SCORE:",LRA(1),"BY:",Str8
:Goto 99
:Lbl 12
:Menu("ETES-VOUS SUR?","OUI",98,"NON",99
:Lbl 98
:AxesOff
:FnOff
:ClrDraw
:ZStandard
:Horizontal -1
:Horizontal 1
:Shade(-1,1
:Disp "HIGH SCORE"
:Pause "EFFACE"
:Goto 99
:Lbl Q
sandro le 22/10/2011 à 12:59
Une petite amélioration :
Code
:Disp "HIGH SCORE","EFFACE
:Pause
peut être transphormé en:
Code
:Disp "HIGH SCORE
:Pause"EFFACE

Sandro
made2kill le 22/10/2011 à 17:11
Merci glasses.gif
snap le 22/10/2011 à 18:08
Et aussi, pour les goto, met des lettres à la place des nombres a deux chiffres sa prend moins de place winkle.gif Et il y a plein de guillemets que tu peut enlever ahh.gif
snap le 24/10/2011 à 15:54
J'ai regardé ton code de plus près made2kill et j'ai remarqué quelques améliorations que l'on peut effectuer. Je vous poste donc le programme amélioré.

Code

:EffEcr
:Lbl 9
:Menu("VOITURE","JOUER",J,"SCORES",S,"QUITTER",Q
:Lbl J
:1 -> dim(LRA
:For(A,1,16
:Output(1,A,"*
:Output(8,A,"*
:If non(PartDéc(.5A:Output(.5A,1,"*
:If non(PartDéc(.5A:Output(.5A,16,"*
:End
:Output(3,2,"VOITURE BY SNAP
:Output(5,2,"MEILLEUR SCORE
:Output(6,8,LRA(1
:Pause
:EffEcr
:Disp "","","","","","","
:1 -> A
:1 -> B
:1 -> C
:1 -> D
:1 -> E
:EffVar S8 -> X
:Repeat X >= A et X <= A+1
:CodeTouche -> K
:Min(16,Max(1,X+(K=26)-(K=24 -> X
:Output(3,X,"0
:S+1 -> S
:B -> A
:C -> B
:D -> C
:E -> D
:EntAléat(1,15 -> E
:Output(7,E,"{}
:Disp "
:End
:EffEcr
:Disp "PERDU! SCORE :",S
:If S>LRA(1 : Then
:S -> LRA(1
:Pause "RECORD BATTU!!
:EffEcr
:Input "ENTER NAME",Str8
:Stop
:Lbl S
:Menu("SCORES","SEE HIGH SCORE",5,"RESET HIGH SCORE",4,"BACK",9
:Lbl 5
:Disp "HIGH SCORE:",LRA(1),"BY:
:Pause Str8
:Goto 9
:Lbl 4
:Menu("ETES-VOUS SUR?","OUI",8,"NON",9
:Lbl 8
:AxesOff
:FnOff
:ClrDraw
:ZStandard
:Horizontal -1
:Horizontal 1
:Shade(-1,1
:0 -> LRA(1
:Disp "HIGH SCORE
:Pause "EFFACE
:Goto 9
:Lbl Q
:Effecr
:Output(1,1,"


PS : tu n'avais pas mis de titre à ton menu. Normalement il n'y a plus d'erreur.
simsmith78 le 05/11/2011 à 11:51
A ceux L'ayant testé, quel est votre meilleur score?
snap le 05/11/2011 à 13:28
Moi, comme j'ai dit au début, j'avais eu un programme du genre qui "comptait" les secondes j'avait tenu 11 minutes bigmouth.gif
minideck le 06/11/2011 à 23:48
Mais a ce moment la on n'avais pas encore réussi a écrire le "Réel" surligné au milieu de l'écran et sans savoir que tout allais être effacé on a même pas pris de notes sur le timer mais y doit avoir moyen d'en refaire un quand même loupe.gif
simsmith78 le 08/11/2011 à 21:49
moi mon max c'est 164... je suis nul... winkle.gif
SS4-TI82 le 09/11/2011 à 14:44
Je suis une grand fan de ce jeu , cé énorme !!! extraterre.gif
Mon record : 375
(obtenu apres +de 100 parties)
Vous me direz je suis un geek crazy.gif
Persalteas le 09/11/2011 à 14:55
t'inquiète, y'a que ça ici... godgrace.gif