Forum

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

Un petit jeu sympa

Lodirt le 18/11/2013 à 10:10
Bonjour à tous et à toutes bigmouth.gif

Je profite de mon heure de trou pour poster mon petit jeu fait en heure de maths ( mais chut faut pas le dire bigmouth.gif )
Je n'avais pas d'idée pour le nom ^^
Le but étant de manger les étoiles, vous vous déplacez avec les flèches et vous pouvez faire pause en appuyant sur la touche [2nd]

Voila le code :
Code
prgmJEU ( J’avais pas d’idée de nom ^^ )

:EffEcr
:Output(3,7,"JEU
:Output(4,8,"BY
:Output(5,6,"LODIRT
:Pause
:Lbl 0
:Menu("JEU","JOUER",J,"QUITTER",Q
:Lbl J
:EffEcr
:8->X :4->Y :0->TETA :0->S
:Repeat K=45
:For(I,1,300
:If TETA=0
:Then
:entAléat(2,7->U
:entAléat(1,16->T
:Output(U,T, "*
:1->TETA
:End
:Output(1,1,"SCORE:
:Output(1,8,S
:Output(8,1,"TIME:[7 espaces]/300
:Output(8,9,I
:codeTouche->K
:Output(Y,X,"O     */Ici vous pouvez mettre le caractère que vous voulez :)
:If K=24 et X>1
:Then
:Output(Y,X,"[1 espace]
:X-1->X
:End
:If K=25 et Y>2
:Then
:Output(Y,X,"[1 espace]
:Y-1->Y
:End
:If K=26 et X<16
:Then
:Output(Y,X,"[1 espace]
:X+1->X
:End
:If K=34 et Y<7
:Then
:Output(Y,X,"[1 espace]
:Y+1->Y
:End
:If X=0:16->X
:If Y=1:7->Y
:If X=17:1->X
:If Y=8:2->Y
:If X=T et Y=U
:Then
:1+S->S
:0->TETA
:End
:If K=21:Pause
:End
:End
:EffEcr
:Output(3,1,"SCORE :
:Output(3,8,S
:If S>L1(1
:Then
:Output(8,2,"NEW HIGH SCORE
:S->L1(1
:End
:Output(6,1,"HIGH :
:Output(6,8,L1(1
:Pause
:EffEcr
:Goto 0
:Lbl Q
:EffEcr
:Output(1,1,"


Voila, j'ai aussi un petit rpg à mon actif mais j'ai pas vraiment le courage de le recopier moodforlove.gif

Sauf si vous me le demandez, je me mettrais peut-être à l'écrire happy.gif

Voila, bon jeu à tous et bon recopiage happy.gif
linkakro le 18/11/2013 à 19:06
Tu n'affectes pas la variable T.

des ennuis
Code
:For(I,1,500

/////////////.....

:If I=300
:Then
:Goto 1
:End
:End
:End
:Lbl 1
Ce Goto est dans des boucles et cette alternative, ce serait source de problèmes dans d'autres programmes, et en plus Then/End sont facultatifs.
Et pourquoi un Goto pour sortir d'un For alors qu'on est à la fin ??? Adapte juste la borne du For...
EDIT:et la condition du Repeat

Je propose de rassembler les actions suivantes ainsi mais d'imposer l'exécution au début du contenu.
Code
:0->teta

:If TETA=0
:Then
:entAléat(2,7->U
:Output(U,T, "*
:1->TETA
:End

:If X=T et Y=U
:Then
:1+S->S
:0->TETA
:End

///////////////////

// au début // ou bien une meilleure solution si tu en trouves
:entAléat(2,7->U
:Output(U,T, "*

// dans la boucle
:If X=T et Y=U
:Then
:1+S->S
:entAléat(2,7->U
:Output(U,T, "*
:End
Lodirt le 18/11/2013 à 20:06
Ah oui je vais rectifier ça.
Un petit oublie de ma pars. moodforlove.gif
Et il est vrai que je n'avais pas pensé à ta solution merci happy.gif
Je rectifierais plus tard bigmouth.gif
linkakro le 18/11/2013 à 20:11
Je retire ce que j'ai dit à propos de la condition de sortie sur I : la présence du Repeat s'oppose à ma proposition, il y a quand même un aménagement à faire.

J'avais écrit trop vite ma proposition de rassemblement des fragments de collision et génération des étoiles :
j'avais négligé l'importance de générer l'étoile systématiquement au début.
Cela dit, la répétition du code n'est pas élégante mais rapide.