Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Jeu "Mars Atak!"
Link le 23/04/2010 à 10:45
Voila un petit programme que j'ai du réalisé en 2 étapes:
La première fois on se déplaçait en rentrant 1 pour aller a droite, 3 pour aller a gauche, 2 pour tirer et 5 pour attaque spécial. Les ennemis ne faisait pas mal et le jeu ralentissait, mais j'étais fier ^^ .
Tout ça c'était avant le drame...
Le RESET impromptue de ma très chère TI-82 ... (aucune sauvegarde --" )
Depuis j'ai tout refait et je dois dire que "Mars Atak!" s'en porte mieux!
Déplacement avec les flèches, pas de ralentissement, ennemies qui vous tues...
Parfait! (Enfin presque)
Bon, je voit beaucoup d'améliorations possible...
Je vous dit ça à la fin de programme.
// Ceci est un commentaire
Le programme BRIDE sera expliqué à la fin
Code
50->U //var de temps (elle ne baisse pas)
U->T //T=var de temps qui baisse au fur et a mesure du jeu)
0->S //var d'attaque spécial
1->N //var de niveau
Pause "PROG BY LiNK
Lbl A
EffEcr
Menu("MARS ATAK!","JOUER",1,"MEILLEUR SCORE",9,"QUITTER",Z
Lbl 9
Disp "MEILLEUR SCORE
Disp H
Disp "RECORD DE NIVEAU
Pause Z
Goto A
Lbl 1
EffEcr
0->I //var de d'ennemies tués
Disp "NIVEAU
Output(1,7,N
If N[supérieur]Z:N->Z
Pause
EffEcr
Output(4,6,"PRET?
50->[théta]
prgmBRIDE
Lbl 4
EffEcr
8->A //var vertical vaisseau
8->B //var horizontal vaisseau
Goto 5
Lbl 3
EffEcr
T-1->T
If T=0
Then
Disp "BRAVO!
Disp I
Pause "TUES
If I[supérieur]H:I->H
S+2->S
N+1->N
U+20->U
U->T
Goto 1
End
Output(8,16,S
Output(A,B,"^0^" // ces deux lignes correspondent a l'affiche du vaisseau, il
Output(A-1,B+1,"!" // peut donc être modifié à la guise du programmeur (tant qu'il n'y a que3 caractères en bas et 1 en haut)
G+1->G
If G=9:Goto 5
Output(G,H,"*" // pareille ici pour l'affichage de l'ennemie (1 caractère max)
If G=A-1 et H=B+1:Goto Y
If G=A
Then
If H=(B+1) ou H=B ou H=B+2:Goto Y
End
Lbl 6
0->C
CodeTouche->C
If C=0:Goto 6
If C=24:B-1->B
If B=0:1->B
If C=26:B+1->B
If B=14:13->B
If C=25
Then
0->D
A-1->E
B+1->F
Lbl 2
E-1->E
If E=0:Goto 3
If E=G et F=H
Then
I+1->I
Goto 5
End
Output(E,F,"'" // le caractère à afficher est un guillemet simple
3->[théta]
prgmBRIDE
Goto 2
End
If C=34 et S[différent de]0
Then
S-1->S
I+1->I
Output(4,B+1,"+
50->[théta]
prgmBRIDE
EffEcr
Output(6,6,"BOUM!
50->[théta]
prgmBRIDE
Goto 5
End
Goto 3
Lbl 5
ent(15NbrAléat)->H
If H=1 ou H=0:2->H
0->G
Goto 3
Lbl Y
"Perdu!
90->[théta]
prgmBRIDE
Lbl Z
Disp "PROG BY LiNK
voilà, ça c'est le programme principal!
Maintenant le programme BRIDE
Lbl 1
If [Théta][sup ou égal]1
Then
[théta]-1->[théta]
Goto 1
End
Ce programme sert juste a ralentir l'action qui suivra l'exécution de ce programme.
Plus la variable [théta] (qui est annoncé avant dans le programme principal) est grande, plus l'attente sera longue.
C'est une question de fluidité de jeu.
J'utilise ce programme en remplacement d'un "Pause", cela évite à l'utilisateur d'avoir à appuyer sur "Entrer".
Vous pouvez tout de même remplacer ce programme par un pause.
--------------------+
Maintenant mes questions:
Pourrait-on m'indiquer quels "Then" et "End" pourrait être enlevés?
J'aimerais, dans le futur, augmenter le nombre d'ennemies à chaque niveau (ex: niv 3 -> 2 ennemies, niv 6 -> 3 ennemies ect ...)? Je pense que se travaille est assez long, mais réalisable.
Merci.
Toutes critiques (positives et négatives) sont les bienvenues.
LiNK
AlexRider38 le 23/04/2010 à 10:50
Ça à l'air pas mal

Link le 23/04/2010 à 10:55
Merci ^^ (Pour le modique poids de 760 o )linkakro le 24/04/2010 à 19:26
Ton BRIDE peut être un simple For vide.
¤ représente thêta
comme toujours ( - ) est le petit moins du bas
Link le 24/04/2010 à 20:56
Linkakro: Ok! Et cela l'empêche de ralentir ou pas?
(et a quoi sert le W? Je ne sait pas utilisé la fonction For a vrai dire ^^)linkakro le 24/04/2010 à 21:11
Plus thêta est grand et plus le For dure longtemps, ralentissant le programme.
Ce ralentissement est le plus propre que je connaisse.
W est la variable directrice du For.
For(variable,valeur_début,valeur_fin,incrément_ou_décrément
pour les then en trop ...
Code
If G=A
Then
If H=(B+1) ou H=B ou H=B+2:Goto Y
End
devient :
Code
If G=A et (H=(B+1) ou H=B ou H=B+2):Goto Y
Link le 24/04/2010 à 22:16
Ok!
Déja testé et ça ne marche pas. Les "et" et "ou" se groupe mal entre eux si tu vois se que je veux dire.linkakro le 25/04/2010 à 22:43
Sur ma 82statfr ça marche très bien avec des parenthèses autour de la série de ou. Cela constitue une équation de la forme a*(b+c+d) tout-à-fait plausible.
Quelques trucs comme ça me semblent différer entre les modèles

Link le 26/04/2010 à 18:29
J'ai aussi une TI-82 Stats.fr
Je pense que la première fois que j'ai essayé je n'avais pas mis les parenthèses et que c'est pour cela que ça n'a pas marché.
Merci Linkacro, jessairais a l'ocase!

raboulave le 26/04/2010 à 18:55
Moi, le programme BRIDE fait 31 octets et INVADERS ( je l'ai renommé à l'occasion

) fait 704 octets ! Très impressionnant pour un programme de ce genre

Bon après je l'ai pas encore essayé, juste tapé sur ma caltos ^^ Je te dis ça !
raboulave le 26/04/2010 à 18:58
Euh déjà tu as oublié Lbl A juste avant le menu : si on va dans les highscores et qu'on fait entrée, il affiche err. étiquette

D'autre part, j'ai moi-même fait mon Lbl "Quitter" que je préfère d'ailleurs nommer Q ( tu verras que pour se retrouver dans un gros prog de 10 000 octets, vaut mieux avoir des labels de l'initiale de ce qu'ils renvoient sinon tu t'en sors plus

)
raboulave le 26/04/2010 à 19:00
Oups désolé pour le double-post ^^ Je voulais justement mettre mon Lbl "Q" quand j'ai cliqué sur Envoyer, j'avais déjà oublié

Bon alors c'est tout con, mais très propre : ça ne laisse absolument aucune trace !
Lbl Q
EffEcr
Output(1,1,"
Stop
raboulavev le 26/04/2010 à 19:06
Eh bien, mes premières impressions :
- Assez fluide, il faudrait cependant mettre une règle du jeu ( J'ai trouvé comment lancer un misile car je connais le codetouche, mais sinon c'est galère pour un débutant

)
- Il me met lvl 0 au début, et quand je passe lvl 2 il me met 2 : petite erreur variable je pense

- Passé le lvl 2, les ennemis ne bougent que quand je bouge : tu as voulu faire un Mars Attack version RPG, ou sinon c'est un bug ? Je pencherais pour la 2e réponse

Mais sinon le lvl 1 est nickel
Voili-voilou ! Bon le Menu pour les règles est pô compliqué d'ailleurs je l'ai moi-même déjà fait
En tous cas, un début pas mal du tout mais comme c'est ton prog il faudrait que je le relise bien plutôt que le taper bêtement, comme ça je pourrais corriger les bugs tout seul mais là j'ai pas le temps, Oral blanc de Français oblige ^^ ( courage, plus que 2 mois ... )
raboulavev le 26/04/2010 à 19:08
Ah non je me suis trompé, en fait dès le lvl 1 c'est du rpg

Mais le joueur boule-de-nerfs ne se rendra même pas compte que c'est du RPG, il tape trop vite sur les touches

Pour moi, ce problème a toujours été, j'ai jamais réussi à le corriger. J'ai déjà tenté plein de Space Invaders dans le même genre mais aucun n'était convaincant. Bon je m'y suis pas trop attardé non plus aussi, j'avais d'autres trucs à foutre ^^
Link le 27/04/2010 à 17:42
Lu! Merci de toute ces critiques !!!
Pour l'étiquette A, désolé, j'ai recopier une vieille version ou il n'y avait pas de "meilleur score", donc forcément pas de Lbl A.
Désolé, mais ma religion de programmeur m'interdit de mettre des "Stop".
Explication : je crée un système d'exploitation (si tu vois ce que je veux dire), donc pas le droit à un arrêt du programme!!! ^^
Pour l'étiquette de fin de programme, ne t'inquiète pas, j'ai mon habitude!!!! Lbl Z pour la fin, A pour le menu principale, 1 pour la boucle principal, et pareille pour les variables!

Pas de problème la dessus ^^
Oui, le but était de faire un RPG. Ca rend le jeu plus "tactique" (même si sur ce genre de jeu un peu limiter, la tactique ne vas pas loin). En effet, la plupart de mes amis on commencé comme toi: en mode BOURRIN!
Ils appuyaient sur toutes les touches en croyant que l'ennemie progressé vers soit!
(je m'imagine ce qu'ils ont du penser:
"jappuie plus vite pour en tué plus", accélère la candence, "mais il arrive trop vite!", accélère la cadence , "mais c'est trop rapide!!!"

)
Sinon, oui je voulais mettre une instruction. Enfin bon, c'est pas le genre de truc primordial, rapidement fait quoi.
Merci beaucoup pour ces critiques! ^^ (attention, une critique peut être autant positive que négative! (je rapelle le sens de ce mots

))
Bonne chance pour l'orale blanc de Français! Moi qui suit en Seconde je n'ai pas cours de français de la semaine grâce à cela!!! Hi Hi Hi!
@+
LiNK, programmateur du bahut Victor Hugo
darkking le 28/04/2010 à 17:17
Du lycée victor hugo d'où ?
Moi je suis à colomiers !Link le 28/04/2010 à 20:16
Lycée Victor Hugo à Lunel, près de Montpellier, dans le Sud de la France. ^^moi le 11/05/2010 à 09:57
Vive l'Oral Blanc !
Y a rien a savoir et ça remonte la moyenne !
Sinon, j'ai moi même crée un prgm mars attack que je ne peux malheureusement pas vous transmettre faute de cable ti. Dommage.
Voici ses caractèristiques:
-vitesse et nb d'ennemis croissants
-Score
-Possiilité d'utiliser des Bombes
-fluidté correct
le tout pour moins de 1000 octets
Cependant, je pense que celui posté sur ce site est superieur au mien a vue d'oeil, je vous ferais part du mien dès que j'aurai le cable ti
Link le 16/05/2010 à 12:42
Cool!
Le mien utilise des fonctions très simple alors c'est facile de faire mieux quand même.
Tu n'a pas besoin du câble pour poster, moi j'ai écrit le mien au clavier.
En espérant voir ce programme, a+moi le 17/05/2010 à 09:50
OK, tu l'a a la fin de la semaine (si j'y pense) car chose expeptionnel: aujourd'hui je n'ai pas pas ma calculette sur moi.
AAhhh ! la Cruel vie du Geek ! ^^Link le 17/05/2010 à 18:21
lol! Moi je peut pas la prêter à quelqu'un sans stresser toute la journée! (c'était le cas de aujourd'hui --"

)
Cool, j'ai hâte de voir ça!!!
LiNK
moi le 18/05/2010 à 12:37
Je compatis.
Moi, quant on me prend ma calculette, j'étrangle, je frappe, je mord...
completement accro ^^
bien voila le prmg. je ne met pas tt les ":"
Code
lbl A
EffEcr
0->S,Y:1->T,Q,A,B,C,X / J'ai la flemme de repéter les -> mais tu comprendra
3->D,E,F
15->N,L,J
lbl B
1->W
code touche->A
If A=25:B-1->B
If A=34:B+1->B
If B>8:8->B
If B<1:1->B
Output(B,1,">")
If A=105:Then:Output(B,2,"---------------":2->W:end
If A=42 et X>0:Then:EffEcr:X-1->X:Goto X:end:
If S>2 et D non egal a 2:1->D
If S>8 et E non egal a 2:1->E
If S>20 et F non egal a 2:1->F
If C=2: Goto C:
entaleat(1,8)->G
15->H:2->C
lbl C: If D>1:Goto D
entaleat(1,8)->I:15->J:2->D
lbl D:If E>1:Goto E: entaleat(1,8)->K:15->L:2->E
lbl E:If F>1:Goto F:entaleat(1,8)->M:15->N:2->F
lbl F
Output(G,H,"<")
H-1->H
If S<3 et D non egal a 2:Goto T
Output(I,J,"<"
J-1->J
lbl T: If S<8 et E non egal a 2:goto U
Output(K,L,"<"):L-1->L
lbl U:If S<20 et F non egal a 2:Goto V
Output(M,N,"<"):N-1->N
lbl V
If B=G et W=2:Then: output(G,H+1,"0":1->C:S+1->S:end
If B=I et W=2:Then: output(I,J+1,"0":1->D:S+1->S:end
If B=K et W=2:Then: output(K,L+1,"0":1->E:S+1->S:end
If B=M et W=2:Then: output(M,N+1,"0":1->F:S+1->s:end
If H=0 ou J=0 ou L=0 ou N=0: Goto Z
If S>9:3->y
If S>19:2->Y
If S>29:1->Y
lbl Y:If Y>1:Y-1->Y:If Y>1:Goto Y
EffEcran
goto B
lbl Z
Disp"Perdu!"
Disp"score:"
disp S
pause
Goto A
lbl X: Output(1,1,"------------------------------------------------BOUM!----------------------------------------------------------------------":1->F:1->E:1->C:1->D:S+4->S
goto B
Bien, j'éspere que je n'ai pas fait de fautes de frappes.
Bonne journée
Sangohan38 le 18/05/2010 à 15:56
Tu oublies aussi de mettre la balise code ...
Et on est tous dans ce cas, les gens sont tellements jaloux de notre talent de programmeur

qu'ils veulent toujours tout nous supprimer.
Heureusement que le câble existe sinon je crois que ma vie serait déjà finie.
Sangohan38
Link le 27/05/2010 à 10:19
Ca m'a l'air très bien! Je ne peux pas le testé malheuresement (faute de place!

) mais il ma l'air très bien!
BRAVO!

mancol1309 le 20/05/2014 à 18:12
Désolé mais j 'ai pas compris les repetitions de sto dans ton prgm

linkakro le 20/05/2014 à 18:33
Toutes les variables qu'il a juxtaposé par des virgules doivent certainement recevoir la même valeur.
Code
0->S,Y:1->T,Q,A,B,C,X
0->S
0->Y
1->T
1->Q
1->A
1->B
1->C
1->X
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.