Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 24 Oct 2013, 14:17
Posté le : Jeu 24 Oct 2013, 15:54
Bonjour à tous ! Voilà grace à ce forum j'ai enfin fini mon premier programme (sur TI 82 stats fr), un shoot'em up du nom de "Phoenix Lord". Si ceartain souhaite l'améliorer, je vous en prie ne vous gêner pas.Je précise que ce jeu se compose de trois programmes:
-Le menu (les -> sont des sto)
Code
PROGRAM:PHOENIX
:EffEcr
:Output(1,1,"XXXXXXXXXXXXXXXX //16 X
:Output(3,2,"PHOENIX LORD V
:Output(6,2,"BY ATTILA >W<
:Output(4,15,"' //Ceci est une apostrophe que l'on trouve dans le catalogue (2nd 0)
:Output(8,1,"XXXXXXXXXXXXXXXX //16 X
:Pause
:EffEcr
:Menu("VAISSEAU ?","UTOPIC II >W<",U,"GARENA Z I//le symbole pi//I",G
:Lbl U
:prgmUTOPIC
:Stop
:Lbl G
:prgmGARENA
:Stop
-Le premier vaisseau(UTOPIC II)
Code
PROGRAM:UTOPIC
:EffEcr
:Input "DIFFICULT:2,3,4?",H
:EffEcr
:7->A
:7->B
:A+1->C
:1->U
:entAléat(2,15)->X
:1->Y
:entAléat(2,15)->Z
:0->T
:0->Q
:0->S
:Lbl 0
:7->B
:EffEcr
:Output(8,A,">W<
:Output(U,X,"V
:Output(Y,Z,"V
:codeTouche->K
:If K=24 et A-1>0
:A-1->A
:If K=26 et A+3<17
:A+1->A
:If K=21:Goto 1
:A+1->C
:If K=105:Menu("QUITTER","OUI",EN,"NON",0
:T+1->T
:If T=H:Goto T
:Q+1->Q
:If Q=H:Goto Q
:Goto 0
:Lbl 1
:A+1->C
:For(B,7,1,-1
:For(B,B,B-0.1
:End
:7*8/racine de (5)-4²*66/racine de (42)+11*16 //calcul visanta ralentire le tir pour qu'il soit visible
:Output(B,C,"'
:If B=Y-1 et C=Z
:Goto DB
:If B=U-1 et C=X
:Goto DA
:End
:Goto 0
:Lbl T
:0->T
:U+1->U
:If U=8:Goto G
:Goto 0
:Lbl Q
:0->Q
:Y+1->Y
:If Y=8:Goto G
:Goto 0
:Lbl DA
:1->U
:entAléat(2,15)->X
:Goto S
:Lbl DB
:1->Y
:entAléat(2,15)->Z
:Goto S
:Lbl S
:S+1->S
:Goto 0
:Lbl G
:EffEcr
:Output(5,4,"GAME OVER
:Output(8,1,"SCORE
:Output(8,7,S
:Pause
:Menu("CONTINUER","OUI",D,"NON",EN
:Lbl EN
:EffEcr
:Stop
:Lbl D
:prgmPHOENIX
:Stop
Et le deuxième vaisseau(GARENA Z)
Code
PROGRAM:GARENA
:EffEcr
:Input "DIFFICULT:2,3,4?,H
:EffEcr
:7->A
:7->B
:A->C
:7->D
:A+2->E
:1->U
:entAléat(2,15)->X
:1->Y
:entAléat(2,15)->Z
:0->T
:0->Q
:0->S
:Lbl 0
:7->B
:7->C
:EffEcr
:Output(8,A,"I//symbole pi//I
:Output(U,X,"V
:Output(Y,Z,"V
:codeTouche->K
:If K=24 et A-1>0
:A+1->A
:If K=26 et A+3<17
:A+1->A
:If K=105:Menu("QUITTER","OUI",EN,"NON",0
:K=21:Goto 1
:T+1->T
:If T=H:Goto T
:Q+1->Q
:If Q=H:Goto Q
:Goto 0
:Lbl 1
:A->C
:A+2->E
:8->B
:8->D
:Repeat B=1 et D=1
:B-1->B
:D-1->D
:7*8/racine de (5)-4²*66/11+16 //encore le calcul de lag
:Output(B,C,"'
:Output(D,E,"'
:If B=Y-1 et C=Z ou D=Y-1 et E=Z
:Goto DB
:If B=U-1 et C=X ou D=U-1 et E=X
:Goto DA
:End
:Goto 0
:Lbl T
:0->T
:U+1->U
:If U=8:Goto G
:Goto 0
:Lbl Q
:0->Q
:Y+1->Y
:If Y=8:Goto G
:Goto 0
:Lbl DA
:1->U
:entAléat(2,15)->X
:Goto S
:Lbl DB
:1->Y
:entAléat(2,15)->Z
:Goto S
:Lbl S
:S+1->S
:Goto 0
:Lbl G
:EffEcr
:Output(5,4,"GAME OVER
:Output(8,1,"SCORE
:Output(8,7,S
:Pause
:Menu("CONTINUER","OUI",D,"NON",EN
:Lbl EN
:EffEcr
:Stop
:Lbl D
:prgmPHOENIX
:Stop
Voilà,voilà !
Notes:-les difficultés sont dans l'ordre décroissant (2=Difficile et 4= Facile)
-La difficulté 1 éxiste mais est suscidaire
-Les commandes sont les flèches pour se déplacer, 2nd por tirer et Enter
pour faire Pause.
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 30 Oct 2013, 15:57
Je suis intrigué par la temporisation.
Code
:For(B,B,B-0.1
:End
:7*8/racine de (5)-4²*66/racine de (42)+11*16 //calcul visanta ralentire le tir pour qu'il soit visible
Le calcul est mal choisi car peu efficace et bordélique.
Le grand classique est la factorielle 69 notée 69!. Cela effectue 1*2*3*...*69. On utilise 69! car 70! et plus dépassent la capacité.
Il serait plus simple d'utiliser une boucle For vide en choisissant la borne convenable.
Code
For(D,0,100):End
Ta boucle For(B,B,B-0.1) n'a que peu d'intérêt car elle est quittée immédiatement. En plus saisir B-1 en fin aurait suffit.
Pas besoin de Goto avant le Lbl.
Code
:Goto S // innutile
:Lbl S
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 24 Oct 2013, 14:17
Posté le : Mer 30 Oct 2013, 20:48
Oui je me suis rendu compte après coup des rappels de valeur inutiles et oublies d'optimisation notables. D'ailleurs j'ai 1 questions:que est ce que je pourrais programmer pour m'entraîner ?
En tout cas merci de ta réponse et de tes conseils bienvenus.
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 30 Oct 2013, 21:28
Je pense que tu devrais utiliser la commande Return pour revenir à PHOENIX à l'emplacement de l'appel du sous-programme plutôt que d'appeler PHOENIX.
Pour l'instant tu ne fais que des appels donc les Stop après les appels ne servent à rien du tout.
Sâches aussi qu'arriver à la fin d'un programme provoque la même chose que Return.
Tu peux t'entrainer en faisant les jeux classiques et des maths. Quelques idées : jeu du plus ou moins, factorisation des trinômes, calcul du pgcd (plus grand commun diviseur) par l'algorithme d'euclide (divisions euclidiennes successives), jeu de pong à un joueur puis deux, jeu d'éviction d'obstacles mouvants
Je ne conseille pas le Snake pour commencer, il y a trop de méthodes différentes et de contraintes différentes, et la plupart sont trop lentes et risquent de te décevoir, ce qui serait dommage.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 24 Oct 2013, 14:17
Posté le : Jeu 31 Oct 2013, 18:15
J'ai suivi la méthode de mdr1 en partie donc j'ai déja fait des plus ou moins et du chauds ou froids.
Je vais essayer de faire le calcul de pgcd. Je le posterai peut être pour que tu me dise ce que t'en penses.
Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 24 Oct 2013, 14:17
Posté le : Dim 03 Nov 2013, 21:57
J'ai suivi la méthode de mdr1 en partie donc j'ai déja fait des plus ou moins et du chauds ou froids.
Je vais essayer de faire le calcul de pgcd. Je le posterai peut être pour que tu me dise ce que t'en penses.