Poster un nouveau sujet Poster une réponse
TANK en graphique
Auteur Message
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Lun 11 Juil 2011, 19:21   Citer 

Voila la version 1 de mon jeu de tank. Pour l'instant les tanks ne bougent pas, il n'y a pas de relief et pas de vent mais on peut dores et déjà se tirer dessus en choisissant l'angle et la force (en appuyant sur les fleches haut et bas et on valide après).



Code

:degré
:0->K:2->H:50->I:I->J
:entaleat(1,2->H
:0->Ymin
:10->Ymax
:0->Xmin
:Ymax->Xmax
:AxesNAff
:EffDessin
:For(A,.4,1.4,.1
:Ligne(1,A,2,A
:Ligne(8,A,9,A
:End
:Horizontale .4
:Horizontale .1
:SauveImage Img1
:Lbl 1
:45->[theta]
:7->V
:H-2ent(H/2)+1->H
:If H:Then
:2->S:2.7->N:10->O: .3->P
:End
:If H=2:Then
:8->S:7.3->N:0->O: -.3->P
:End
:While K [différent de] 105
:codeTouche->K
:If K=25 et [theta]<90:Then:[theta]+1->[theta]:EffDessin:End
:If K=34 et [theta]>0:Then:[theta]-1->[theta]:EffDessin:End
:RappelImage Img1
:Texte(1,5,"ANGLE:
:Texte(1,30,"        "
:Texte(1,30,[theta]
:Texte(1,60,"J1:
:Texte(1,70,"     "
:Texte(1,70,I
:Texte(9,60,"J2:
:Texte(9,70,"     "
:Texte(9,70,J
:If H=1
:Ligne(S,1.4,S+cos([theta]),1.4+sin([theta]
:If H=2
:Ligne(S,1.4,S-cos([theta]),1.4+sin([theta]
:End
:0->K
:While K[différent de]105
:codeTouche->K
:If K=25 et V<15
:V+1->V
:If K=34 et V>0
:V-1->V
:Texte(9,5,"FORCE:
:Texte(9,25,"        "
:Texte(9,30,V
:End
:For(X,N,O,P
:-4.9(X-2.7)²/(V²(cos([theta])²))+(X-2.7)tan([theta])+1.4+sin([theta]->Y
:Pt-On(X,Y
:If X[supérieur ou égal]8 et X[inférieur ou égal]9 et Y[inférieur ou égal]1.4:Then:J-5->J:Goto 2:End
:If X[supérieur ou égal]1 et X[inférieur ou égal]2 et Y[inférieur ou égal]1.4:Then:I-5->I:Goto 2:End
:End
:Lbl 2
:If I=0:Then:Texte(31,20,"LE JOUEUR 2 GAGNE!":Stop:End
:If J=0:Then:Texte(31,20,"LE JOUEUR 1 GAGNE!":Stop:End
:0->K
:Pause
:EffDessin
:Goto1





Quelqu'un peut me dire ce qu'il en pense?

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
Programaths



Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Lun 11 Juil 2011, 19:50   Citer 

Dans ce jeu (enfin le jeu que je pensais) les tank ne bouge pas happy.gif c'est le premier qui tue l'autre qui gagne happy.gif
(et normalement les tank sont très petit)

même si je ne suis pas un spécialiste des octet au moins, il y a quelque ligne a simplifier :


Code

:Texte(1,5,"ANGLE:
:Texte(1,30,[theta],"     "      //
:Texte(1,60,"J1:
:Texte(1,70,I,"      "           //
:Texte(9,60,"J2:
:Texte(9,70,J,"     "            //



Un grand bravo !
J'ai sans doute fais quelque erreur car le tracé de la courbe ne commence pas a partir du tank mais depuis le ciel !
Le clrDraw a chaque fois que l'on change l'angle fais mal au yeux winkle.gif
Et, dès que l'un des deux joueurs a fini son tour ça fini le programmes.

Voila happy.gif

----------------------
&quot;Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi .&quot;

&quot;L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
&quot;
 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Lun 01 Aoû 2011, 10:53   Citer 

Voici la version 2 de mon jeu de tank paufinée et fignolée aux petits oignons. Les améliorations sont : la position aléatoire des tanks, du vent, des tanks plus petits (mais tout aussi éfficaces), du relief avec des crevasses aléatoires, des barres de vie (parceque c'est plus classe) et euh je crois que c'est tout. J'ai un peu oublié ce qu'il y avait dans la V1 qui n'était qu'une ébauche alors voila:


Code

:degré
:50->I:I->J:EffvarWEffvarR:45->N:N->0:7->P:7->Q
:entaleat(1,2->H
:entaleat(5,20->D
:entaleat(74,89->H
:AxesNAff
:EffDessin
:0->Ymin
:62->Ymax
:0->Xmin
:94->Xmax
:Menu("FORME DU TERRAIN","PLAT",0,"(PRESQUE) PLAT",A,"COLLINE",B,"MONTAGNE",C
:Lbl 0
:0->M:-1->C
:Goto D
:Lbl A
:.2->M:18->C
:Goto D
:Lbl B
:.4->M:37->C
:Goto D
:Lbl C
:.7->M:65->C
:Lbl D
:Effecr
:Disp "DENIVELE TERRAIN","(ENTRE 1 ET 15)
:Input "",B
:If B<1:1->B
:If B>15:15->B
:EffDessin
:For(Z,1,47
:entaleat(1,B->L
:Ligne(Z,0,Z,MZ+L
:If Z [supérieur ou égal à]D et Z[inférieur ou égal à]D+5 et MZ+L+4>W
:MZ+L+4->W
:End
:For(Z,47,94
:entAleat(1,B->L
:Ligne(Z,0,Z,C+B-MZ-L
:If Z [supérieur ou égal à]E et Z[inférieur ou égal à]E+5 et C+B-MZ-L+4>R
:C+B-MZ-L+4
:For(A,W-4,W
:Ligne(D,A,D+5,A
:End
:For(A,R-4,R
:Ligne(E,A,E+5,A
:End
:SauveImage Img1
:Lbl 1
:H-2ent(H/2)+1->H
:If H:Then
:0->K
:N+(O-N)(H=2->[theta]
:P+(Q-P)(H=2->V
:entAleat(-3,3->F
:Effdessin
:RappelImage Img1
:While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:If H=1
:Texte(ent(62-W-5),D+6,"    "
:If H=2
:Texte(ent(62-R-5),E-4,"    "
:0->K:End
:Texte(1,5,"ANGLE:",[theta],"        "
:Texte(1,60,"J1:",I,"     "
:Ligne(70,58,70+I/3,58
:Texte(9,60,"J2:",J,"     "
:Ligne(70,52,70+J/3,52
:Texte(1,5,"Vent",F,"    "
:Ligne(50,59,50+2F,59
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,62
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,56
:If H=1
:Ligne(D+5,W,D+6+4cos([theta]),W+4sin([theta]
:If H=2
:Ligne(E,R,E-1-4cos([theta]),R+4sin([theta]
:End
:If H=1
:[theta]->N
:If H=2
:[theta]->O
:0->K
:While K[différent de]105
:codeTouche->K
:V+(K=25 et V<15)-(K=34 et V>4)->V
:Texte(13,5,"FORCE:",V,"        "
:End
:If H=1
:V->P
:If H=2
:V->Q
:For(M,0,94,3
:PxlOff(0,M
:Texte(1,M"   "
:Texte(7,M,"   "
:Texte(13,M,"   "
:End
:D+5+(89-E-D)(H=2->T
:For(X,T,Xmax
:ent(-4.9(X-T)²/(8(V+F-2F(H=2))²(cos([theta])²))+(X-T)tan([theta])+W+(R-W)(H=2)+sin([theta]->Y
:If Y<0:Goto 2
:If Y>0 et Y<62 et X[différent de]94 et X>T+5
:Then
:If pxl-Test(62-Y,X+(93-2X)(H=2
:Goto 2
:Pxl-On(62-Y,X+(93-2X)(H=2
:End:End
:End
:Lbl 2
:If H=2 et X[supérieur ou égal à]94-D-5 et X[inférieur ou égal à]94-D et Y[inférieur ou égal à]W et Y[supérieur ou égal à]W-4
:I-5->I
:If H=1 et X[supérieur ou égal à]E et X[inférieur ou égal à]E+5 et Y[inférieur ou égal à]R et Y[supérieur ou égal à]R-4
:I-5->I
:If non(I ou non(J:Then:Texte(31,20,"LE JOUEUR",H,"GAGNE!":Stop:End
:Pause
:Goto1





Des questions?

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Lun 01 Aoû 2011, 13:35   Citer 

Bravo, c'est la classe ce genre de jeu !!

Je ne l'ai pas testé, mais le principe me fait un peu penser à Worms (comme celui qui a gagné le TI concours cette année).

Il te reste donc une amélioration à faire si tu veux que ce soit Worms: Les "tanks" doivent pouvoir se déplacer.

Deuxième idée si t'est vraiment motivé: Plusieurs tanks par joueur...

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Lun 01 Aoû 2011, 14:16   Citer 

Pour le déplacement il faudrait que je revoie totalement le relief parce que c'est très chaotique parfois et donc difficile de s'y "déplacer" mais c'est ce qui rend l'autre difficile à toucher surtout quand il y a du "vent".
Pour les différents tanks, il n'y aurait pas assez de place. On est qand même en 62x94 pixels. C'est pas terrible comme définition et puis j'ai pratiquement utilisé toutes les variables pour le prog déja existant alors à moins d'utiliser des listes...
Mais merci du compliment et des suggestions ça fait plaisir quand même. beer.gif bigmouth.gif

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Jeu 04 Aoû 2011, 20:11   Citer 

Quelqu'un peut-il tester mon programme et me dire ce qu'il en pense? Ce serait sympa clown.gif clown.gif clown.gif
Et les éventuelles optimisations même si je pense avoir fait le tour (on est jamais trop prudent bigmouth.gif bigmouth.gif )

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Sam 06 Aoû 2011, 22:22   Citer 

Euh youhou? y'a quelqu'un? Je me sent alone sur mon sujet la cry.gif cry.gif

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 07 Aoû 2011, 10:50   Citer 

Pour le tester, je n'ai pas trop le temps de recopier un programme long comme ça (en ce moment je suis en train de travailler sur 2 concours à la fois (zContest2011 et celui d'espace TI) et d'essayer d'apprendre l'ASM (j'aimerais faire le programme pour le concours d'espace TI en ASM, plus peut-être un autre en ASM pour le zContest (c'est une autre catégorie donc on peut présenter un autre programme)).
Par contre, si jamais tu met un lien de téléchargement, je veux bien tester.

Sinon, pour l'optimisation, voici ce que j'ai trouvé:

Code
:Menu("FORME DU TERRAIN","PLAT",0,"(PRESQUE) PLAT",A,"COLLINE",B,"MONTAGNE",C
:Lbl 0
:0->M:-1->C              //à transformer en :Effvar M-1->C    //ici "-" = [(-)]
:Goto D




Code
SauveImage Img1
:Lbl 1
:H-2ent(H/2)+1->H
:If H:Then
:0->K                //à suprimer
:N+(O-N)(H=2->[theta]         //à remplacer par  :effvar KN+(O-N)(H=2->[théta]
:P+(Q-P)(H=2->V
:entAleat(-3,3->F






Code
While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:If H=1
:Texte(ent(62-W-5),D+6,"    "
:If H=2
:Texte(ent(62-R-5),E-4,"    "
:0->K:End


est à remplacer par:

Code
While K [différent de] 105
:codeTouche->K
:[theta]+2(K=25 et [theta]<90)-2(K=34 et [theta]>1->[theta]
:If K et K [différent de]105:Then
:effvar KIf H=1
:Texte(ent(62-W-5),D+6,"    "
:If H=2
:Texte(ent(62-R-5),E-4,"    "
:End




Code
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,62    //remplacer "(F=0)" par "non(F)
:Ligne(50+2F,59,47(F>0)+50(F=0)+53(F<0)+2F,56     //idem





Code
0->K    //à supprimer
:While K[différent de]105   //à remplacer pas :effvar KWhile K[différent de]105     
:codeTouche->K
:V+(K=25 et V<15)-(K=34 et V>4)->V    //parenthèse avant le sto à suprimer
:Texte(13,5,"FORCE:",V,"        "
:End



Sandro


PS : pour le dénivelé du terrain, il ne faudrait pas vérifier que le résultat est entier?

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Dim 07 Aoû 2011, 12:25   Citer 

Merci d'avoir répondu. Non ça marche bien comme ça pour le dénivelé. Sinon je ne peux pas poster de 82p pour la bonne raison que je n'ai pas le cable cry.gif cry.gif
Bonne chance pour les concours!!!!!! bigmouth.gif bigmouth.gif bigmouth.gif

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Mer 21 Sep 2011, 17:12   Citer 

c'est super mais il manque un tanke je ne comprend ps pourquoi il peut tirer mais il est invisible et le tank de doite ne peut pas dirigr sont connon sur celui de gauche(l'invisible)

 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Jeu 22 Sep 2011, 19:34   Citer 

Verifie qu'il n'y a pas d'erreur dans ton code. Une faute de frappe est vite arrivée

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Lun 26 Sep 2011, 16:46   Citer 

ok merci je vait encore reverifier

 Adresse email Haut de page Bas de page 
 
come1995



Autorisation : Membre
Nb de messages : 60
Inscrit le : Mer 21 Sep 2011, 17:10
Posté le : Lun 26 Sep 2011, 18:38   Citer 

apres avoir verifier le probleme du placement aleatoire est resolue mais pas celui du tank invisible je croit qu'il sont confondu car c'est comme si je jouai avec le meme tank tout le temps

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes