Forum

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

Voiture qui esquive des obstacles!

Samos le 26/06/2012 à 18:55
Maintenant que j'ai compris le principe du guitar hero de Snap Je me suis dis que je pourrai le copier et faire un programme qui lui ressemble(quasiment le même godgrace.gif ) au niveau du code mais esthétiquement différent, gameplayement aussi!

Code

8->X:10->C
Effvar DEffvar EEffvar Effvar FEffvar GEffvar HEffvar IEffvar J
Repeat non(C
K+1->K
Output(8,15,C
Output(8,5,"-
Output(8,11,"-
Output(2,X,"V
entAleat(6,10->A
Output(8,A,0
For(O,1,50:End
Disp "
Output(1,1,"                      "
codetouche->B
X+(B=26)-(B=24)->X
F->D
G->F
H->G
I->H
J->I
A->J
If X=D
Then
C-1->C
End
If X>=11 ou X=<5
Then
0->C
End
End
EffEcr
Disp "PERDU
Disp "SCORE:",K


Si vous avez des astuces pour limiter les clignotements ou alors pour l'améliorer n'hésitez pas!
Faites en sorte de lancer le programme en dernière ligne de votre écran sinon les zéro s'accumulent sur une seule ligne avant d'avancer et on ne sais plus ou on en est.
linkakro le 26/06/2012 à 19:13
La solution pour le démarrage est de préparer l'écran avec un For(W,1,7) et un Disp "" juste après un ClrHome.
Ce détail est exactement comme le Guitar-héros de snap que j'ai optimisé dans son sujet, et même exactement comme mon CUBEFIELD
Code
ClrHome
For(W,1,7
Disp "
End

Code
codetouche->B
If B   // léger gain de temps... voir explications en dessous
X+(B=26)-(B=24)->X
"If B" permet d'éviter à la calculatrice d'executer la ligne en dessous lorsqu'on ne presse aucune touche, cela permet de gagner du temps sur toutes les lignes droites.
Le temps dépensé à executer le If le reste du temps est négligeable devant le sto.
Samos le 26/06/2012 à 20:26
Désolé pour le copiage mais j'ai plus trop d'idée de programmes en ce moment...
linkakro le 26/06/2012 à 20:38
Je me moque éperduement de la copie, je voulais seulement insister sur la présence de références.
Concentre toi sur mon conseil plutôt que sur mes liens.
snap le 26/06/2012 à 23:59
J'ai optimiser ton code. Pourquoi t'embete tu a mettre Repeat C=0
Puis dans le programme mettre If machin : 0 -> C
Autant tout mettre dans le Repeat.

Code
8->X:10->C
EffEcr
For(A,1,7
Disp"
End
Effvar DEffvar EEffvar Effvar FEffvar GEffvar HEffvar IEffvar J
Repeat X>=11 ou X<=5 ou non(C
K+1->K
Output(1,15,C
Output(8,5,"-
Output(8,11,"-
Output(2,X,"V
entAleat(6,10->A
Output(8,A,0
For(O,1,50:End
Disp "
codetouche->B
X+(B=26)-(B=24->X
F->D
G->F
H->G
I->H
J->I
A->J
If X=D
C-1->C
End
EffEcr
Disp "PERDU
Disp "SCORE:",K
Samos le 27/06/2012 à 09:44
Tu parlais de ça?

Code
If X>=11 ou X=<5
Then
0->C
End


Si oui ce sont les bords de la route qui one shot la voiture si on essaie de les dépassser.
snap le 27/06/2012 à 14:01
samsam a écrit :
Tu parlais de ça?

Code
If X>=11 ou X=<5
Then
0->C
End


Si oui ce sont les bords de la route qui one shot la voiture si on essaie de les dépassser.


Oui je parlais de ça. Je l'ai optimiser en mettant :

Code
Repeat X>=11 ou X<=5 ou non(C