Poster un nouveau sujet Poster une réponse Page: 1, ,      >>
SKYRIM DELUXE, PRESQUE UN RPG COMPLET!
Auteur Message
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Sam 20 Juil 2013, 17:11   Citer 

Bonjour, je suis nouveau sur le forum.
je tiens a exposer le premier jeu que j'ai fait, qui s'appelle skyrim deluxe (prgm skyrimdx).
ce rpg contient trois modes de jeu: aventure, hardcore et survival.
aventure est le mode normal: a chaque monstre battu, vous obtenez 20 points exp.
100 points exp donnent un acces au niveau superieur.
hardcore est plus difficile: cette meme section regroupe deux niveaux de difficultes et un mode "defense chateau" qui donnent a vous et au monstre un nombre de pv bien plus important, ce qui donne un combat qui dure... maxiangry.gif a chaque monstre battu, vous montez d'un niveau.
enfin, le mode survival s'appuie sur votre survie: en effet, vous devez combattre une suite de monstres de niveau 15. Le nombre d'exp recus depend du nombre de monstres abbattus.
j'ai pas le temps de poster le code du jeu. Tout ce que je peux vous dire, c'est qu'il n'y aucun bug dans le prog (a condition de bien recopier!! cupsmiley.gif

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Dim 21 Juil 2013, 19:28   Citer 

Ca a l'air sympa bigmouth.gif
Si tu veux on pourra t'aider à l'optimiser! winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Lun 22 Juil 2013, 21:26   Citer 

Voici le code tant attendu (et dont j'ai passe la journee a recopier!)


Code
code skyrim deluxe:

-> = sto
// blabla: commentaires
L = liste
(t) = variable "thêta"
=/= inegal
attention: avant de demarrer l'application, vous devez creer une liste du nom de "rpg" comportant : (1)=5 ; (2)=0 ; (3)=0 ; (4)=0 ; (5)=0 et (6)=log(7

skyrimdx

:effecran:pleinecr
:axesnaff:effdessin
:1->xmin:95->xmax
:1->ymin:63->ymax
:disp"yeeeees! welcome","on ti-82 stats","system !!!!^                  //pour les ti 82stats et stats.fr
:disp"yeeeees! welcome","on ti-83 graph","system !!!!^                 //pour les ti 83
:disp"yeeeees! welcome","on ti-83 plus","system !!!!^                     //pour les ti 83+
:pause:Lrpg(1)->N
:if N=5 et Lrpg(2)=0:then
:disp"c'est la premier","e fois que je vo","us rencontre. je","suis le createur","du jeu et je me","nomme florian.^
:pause                                        //c'est mon vrai prenom!!!!
:disp"puis-je connaitr","e votre nom ?","(8 caracts max)"
:input"",chaine9
:effecr
:disp"vous vous nommez",chaine9,"? ^
:pause
:disp"c'est un beau no","m que vous avez","la. laissez moi","vous introduire","dans le jeu.^
:pause
:disp"vous allez comba","ttre plein de mo","nstres. vous ete","s au niveau 5,","alors gagnez en","le + possible !^
:pause
:disp"je compte sur vo","us pour les conf","iner. sur ce, je","vous laisse vaqu","er a vos occupat","ions !^
:end
:if N<15:then
:disp"zut !! j'ai oubl","ie votre nom.","rappelez le moi","(8 caracts max)
:input"",chaine9
:disp"oui, c'est ca !!","malgre tout, je","risque de vous l","e demander souve","nt.^
:end
:if N>50 et N<70:then
:disp"vous etes devenu","suffisamment for","t pour n'en fair","e que de la boui","llie !! je vous","invite a essayer","le mode hardcore
:output(8,1,"^
:pause:effecr
:disp chaine9,"je compte sur vo","us! faites de vo","tre mieux!!^
:output(1,10,"!
:end
:if N>100 et N<120:then
:disp"les combattants","de ton envergure","sont assez rares","continuez a vous","ameliorer!^
:end
:if N=125:then
:disp"je te propose un","jeu.","c'est simple: ch","oisissez une mai","n et vous gagnez","l'objet dedans.","cool, non ?^
:pause:effecr
:menu("main?","droite",dr,"gauche",ga
:lbl dr:N+5->N
:disp"obtenu:","5 niveaux !
:goto rr
:lbl ga:N+1->N
:disp"obtenu:","1 niveau !
:lbl rr:disp"merci d'avoir jo","ue !^
:end
:if N>15000:then
:disp"decidement, j'ai","bien fait de vou","s engager! votre","niveau permet de","rivaliser avec p","as mal de monde.","il faut dire que
:pause:disp"des gens comme v","ous sont excepti","onnels! je prefe","re vous avoir de","mon cote!!!^
:end
:if N>15 et N<50 ou N>70 et N<100 ou N>120 et N=/=125 et N<15000:then
:disp"votre niveau est","pas mal place au","niveau national,","mais vous pouvez","faire mieux. ame","liorez vous!!^
:end:pause
:lbl (t):effecr
:menu("skyrim deluxe v3","aventure",a,"hardcore",b,"survival",c,"quit",d,"options,e
:lbl e:effecr
:menu("options","infos version",ev,"changer nom",ec,"effacer records",er,"del sauvegarde",ed,"stop when lose?",es,"changelog",cz,"retour",(t)
:lbl cz
:disp"changelog:","v3.0.2:ajout de","l'effacage d'ecr","an et changelog","v3.0.1:ajout de","num version, pos","sibilite de reve
:pause:disp"nir au menu apre","s avoir perdu. e","galement effacag","e de donnees(rec","ord ou tout).^
:pause:disp"v3.0:maj importa","nte stable desac","tivant le fancy","et gagne en vite","sse. commentaire","s du createur au","demarrage !!^
:pause:goto e
:lbl ev
:disp"infos version:","version installe","e:","v3.0.2 build 26","date: 20/07/13","maj? oui.^
:pause:effecr
:disp"infos compte:","niveau:","exp:","cum:","meteorite:","retour ^
:output(2,8,N
:output(3,5,Lrpg(2)
:output(4,5,(N-5)*100
:output(5,11,partent(N/2
:pause:goto e
:lbl ec
:disp"entrer votre nom","8 caracteres max","sinon skyrim ris","que des bugs.
:input"",chaine9
:disp"votre nouveau no","m a ete enregist","re !!!^
:pause :goto e
:lbl er
:disp"effacer le recor","d (ceci ne peut","etre retabli) ?","press 1 for yes
:input"",a
:while a=/=1
:goto e :end
:0->Lrpg(5)
:disp"efface!^
:pause :goto e
:lbl ed
:disp"voulez vous vrai","ment supprimer v","otre partie (ope","ration non rever","sible)? taper 1:
:input"",a
:while a=/=1
:goto e:end
:5->Lrpg(1):0->Lrpg(2):0->Lrpg(3):0->Lrpg(4):0->Lrpg(5):75²->Lrpg(6)
:disp"sauvegarde suppr","imee.","adieu, vous avez","fait de votre mi","eux !!^
:pause :stop
:lbl es
:disp"quitter lorsque","vous perdez?","oui:1","non:2","retour: autre
:input"",a
:if a=1:75²->Lrpg(6
:if a=2:log(7->Lrpg(6
:disp"saved !^
:pause :goto e
:lbl d:pleinecr
:effecr:stop
:lbl a:63->ymax
:pleinecr :effdessin
:entaleat(N-5,N+5->M
:if M<1:1->M
:3N->V:partent(3.5M->U
:horizontale 10
:ligne(35,35,35,25
:ligne(35,25,25,25
:ligne(25,25,25,35
:ligne(25,35,35,35
:pt-on(31,31
:ligne(32,31,31,32
:ligne(33,28,30,28
:ligne(30,25,30,11
:ligne(30,18,39,16
:ligne(30,18,21,16
:texte(33,54,"pv:",V
:texte(26,54,chaine9,": ",N
:ligne(55,59,65,59
:ligne(65,59,65,49
:ligne(65,49,55,49
:ligne(55,49,55,59
:pt-on(58,56
:ligne(60,53,55,53
:ligne(60,53,57,49
:ligne(64,48,64,41
:ligne(71,41,71,48
:ligne(77,41,77,48
:ligne(83,41,83,52
:ligne(83,53,65,56
:texte(1,1,"ennemi:",M
:texte(8,1,"pv:",U
:texte(55,1,"un ennemi apparait !!!^
:pause
:lbl ae:0->O
:menu("votre tour:","aspire",af,"meteorite",ag,"retour",ah,"giga-griffe",ai,"lasermate",aj,"aleapik",ak
:lbl af
:partent(N/4->a
:partent(N/4->o
:goto al
:lbl ag
:partent(N/2->a
:goto al
:lbl ah
:partent(3N-V->a
:goto al
:lbl ai
:entaleat(0,1->p
:if p=1:then
:2N->a
:else
:0->a
:end
:goto al
:lbl aj
:partent(N/1.2->a
:goto al
:lbl ak
:entaleat(1,6->p
:partent(N/8)*p->a
:lbl al
:texte(55,1,chaine9," attaque !
:for(I,1,8
:texte(10,43,"x
:69!
:texte(10,43,"     :69!                   //5 espaces entre le " et les 2 points
:end
:u-a->u
:texte(55,1,"l'ennemi perd ",a," pv !!^                         //25 espaces
:texte(8,1,"pv:",u,"                                         //27 espaces
:pause
:while o=/=0
:for(I,1,8
:texte(30,40,"+
:69!
:texte(30,40,"     :69!              //5 espaces
:end:V+O->V
:texte(55,1,chaine9,"recupere ",o," pv !^
:pause
:texte(33,54,"pv:",v,"                                                     //25 espaces
:end :lbl a5
:if v=<0 ou U=<0:goto az
:texte(55,1,"l'ennemi attaque !!!
:entaleat(1,4->p
:if p=1:then
:partent(m/4->a
:goto am:end
:if p=2:then
:partent(m/2->a
:goto am:end
:if p=3:then
:entaleat(1,2->p
:if p=1:then
:partent(1.2m->a
:else:0->a
:end:goto am:end
:if p=4:partent(3.5m-u->a
:lbl am:v-a->v
:for(I,1,8
:texte(30,40,"x
:69!
:texte(30,40,"     //5 espaces
:69!
:end:texte(55,1,chaine9," perd ",a," pv !                                                // 26 espaces
:texte(33,54,"pv:",v,"                                                        // 25 espaces
:pause
:if v>0 et u>0:goto ae
:lbl az:if v=<0
:then:texte(55,1,chaine9," est k.o.!^                              //15 espaces
:pause :if Lrpg(6)=log(7:then
:texte(55,1,"retour au menu ^
:pause
:goto (t)
:end
:if Lrpg(6)=75²:then
:texte(55,1,"arret de l'applet...^
:pause:axesaff
:-10->xmin
:-10->ymin
:10->xmax
:10->ymax
:effdessin:stop
:end:end
:if u=<0:then
:texte(55,1,"l'ennemi est k.o.!                                                        // 16 espaces
:for(I,1,20
:69!:end
:texte(55,1,chaine9," a gagne 20 exp!^
:pause
:Lrpg(2)+20->Lrpg(2
:if Lrpg(2>99:then
:Lrpg(2)-100->Lrpg(2):n+1->n
:n->Lrpg(1):texte(55,1,chaine9," monte au niv ",n," !^                                           // 20 espaces
:pause:end
:menu("continuer?","oui",a,"non",(t)
:lbl b:pleinecr
:63->ymax
:menu("hardcore","difficile",ba,"tres difficile",bb,"defense chateau",bc,"retour",(t)
:lbl ba:0->(t)
:n->m:3n->v:5m->u
:goto bd
:lbl bb:160->(t)
:n->m:3n->v:6m->u
:goto bd
:lbl bc:583->(t)
:n->m:24n->v:24m->u
:lbl bd:horizontale 10
:ligne(25,25,25,35
:ligne(25,35,35,35
:ligne(35,35,35,25
:ligne(35,25,25,25
:pt-on(31,31
:ligne(32,31,31,32
:ligne(30,24,30,11
:ligne(30,18,21,16
:ligne(30,18,39,16
:ligne(31,28,33,28
:texte(26,54,chaine9,": ",n
:texte(33,54,"pv:",v
:ligne(55,59,65,59
:ligne(65,59,65,49
:ligne(65,49,55,49
:ligne(55,49,55,59
:pt-on(58,56
:ligne(60,53,55,53
:ligne(60,53,57,49
:ligne(64,48,64,41
:ligne(71,41,71,48
:ligne(83,41,83,52
:ligne(83,53,65,56
:texte(1,1,"ennemi:",m
:texte(8,1,"pv:",u
:texte(55,1,"un mechanix apparait !!^
:pause
:lbl be:0->O
:menu("votre tour:","aspire",bf,"meteorite",bg,"retour",bh,"giga-griffe",bi,"lasermate",bj,"aleapik",bk
:lbl bf
:partent(N/4->a
:partent(N/4->o
:goto bl
:lbl bg
:partent(N/2->a
:goto bl
:lbl bh
:partent(3N-V->a
:if (t)=583:goto be
:goto bl
:lbl bi
:entaleat(0,1->p
:if p=1:then
:2N->a
:else
:0->a
:end
:goto bl
:lbl bj
:partent(N/1.2->a
:goto bl
:lbl bk
:entaleat(1,6->p
:partent(N/8)*p->a
:lbl bl
:texte(55,1,chaine9," attaque !
:for(I,1,8
:texte(10,43,"x
:69!
:texte(10,43,"     :69!                   //5 espaces entre le " et les 2 points
:end
:u-a->u
:texte(55,1,"le mechanix perd ",a," pv !!^                         //23 espaces
:texte(8,1,"pv:",u,"                                         //27 espaces
:pause
:if o=0:goto bm
:for(I,1,8
:texte(30,40,"+
:69!
:texte(30,40,"     :69!              //5 espaces
:end:V+O->V
:texte(55,1,chaine9,"recupere ",o," pv !^
:pause
:texte(33,54,"pv:",v,"                                                     //25 espaces
:end
:lbl bm:if v=<0 ou u=<0:goto bz
:texte(55,1,"le mechanix attaque !!!!!                             //25 espaces
:lbl br
:entaleat(1,4->p
:if p=1:then
:partent(m/4->a
:goto bn:end
:if p=2:then
:partent(m/2->a
:goto bn:end
:if p=3:then
:partent(m/2->a
:end:goto bn
:if p=4:then
:if (t)=0:5m-u->a
:if (t)=160:6m-u->a
:if (t)=583:goto br:end
:lbl bn:v-a->v
:for(I,1,8
:texte(30,40,"x
:69!
:texte(30,40,"     //5 espaces
:69!
:end:texte(55,1,chaine9," perd ",a," pv !                                                // 26 espaces
:texte(33,54,"pv:",v,"                                                        // 25 espaces
:pause
:if v>0 et u>0:goto be
:lbl bz:if v=<0
:then:texte(55,1,chaine9," est k.o.!!!!!^                   // 11 espaces
:pause :if Lrpg(6)=log(7:then
:texte(55,1,"retour au menu ^
:pause
:goto (t)
:end
:if Lrpg(6)=75²:then
:texte(55,1,"arret de l'applet...^
:pause:axesaff
:-10->xmin
:-10->ymin
:10->xmax
:10->ymax
:effdessin:stop
:end:end
:if u=<0:then
:texte(55,1,"le mechanix est k.o.!                                                        // 10 espaces
:for(I,1,20
:69!:end
:n+1->n:n->Lrpg(1
:texte(55,1,chaine9," monte au niveau ",n," !!!!^                            // 15 espaces
:pause
:goto b
:lbl c:horiz:31->ymax
:Lrpg(4->v
:if Lrpg(4=<0 et Lrpg(3=0:then
:3n->v:v->Lrpg(4
:end
:menu("survival","continuer",ca,"retour",(t)
:lbl ca
:effdessin:15->m
:effecr:45->u
:output(1,1,"foe:
:output(1,5,m
:output(2,1,"pv:
:output(2,4,u
:output(3,8,"you:
:output(3,12,n
:output(4,8,"pv:
:output(4,11,v
:output(3,3,"vv
:output(4,3,"vv
:horizontale 9
:texte(1,1,"current streak: ",Lrpg(3
:texte(8,1,"record: ",Lrpg(5
:texte(15,1,"record-current: ",Lrpg(5)-Lrpg(3
:output(1,13,"ee
:output(2,13,"ee
:texte(23,1,"un ennemi apparait !!!^
:pause:lbl ck
:menu("attaque","simple",ce,"double",cf
:lbl ce:partent(n/2->a
:goto ch
:lbl cf:partent(n/2->a
:lbl ch:u-a->u
:texte(23,1,chaine9," attaque!^
:for(I,1,8
:output(1,13,"xx
:output(2,13,"xx
:69!:output(1,13,"ee
:output(2,13,"ee
:69!:end
:texte(23,1,"l'ennemi perd ",a," pv !^
:output(2,4,"                                           // 8 espaces
:output(2,4,u
:pause
:texte(23,1,"l'ennemi passe a l'attaque !
:8->a:v-a->v
:for(I,1,8
:output(3,3,"xx
:output(4,3,"xx
:69!:output(3,3,"vv
:output(4,3,"vv
:69!:end
:texte(23,1,chaine9," perd ",a," pv !!^                                     //8 espaces
:output(4,11,"                                  //6 espaces
:output(4,11,v
:pause
:if u>0 et v>0
:goto ck
:if u=<0:then
:output(1,13,"                                                   // deux espaces pour chaque output(
:output(2,13," 
:1+Lrpg(3->Lrpg(3
:end
:if v=<0:then
:output(3,3,"                                                     //deux espaces pour chaque output(
:output(4,3," 
:texte(23,1,"game over !!!
:69!:69!:69!
:Lrpg(3)*20->z
:texte(23,1,chaine9," gagne ",z," pts exp!^
:pause
:z+Lrpg(2->Lrpg(2
:while Lrpg(2>99
:n+1->n:n->Lrpg(1
:Lrpg(2)-100->Lrpg(2
:end
:if Lrpg(3>Lrpg(5:then
:texte(23,1,"nouveau record! felicitations!^
:Lrpg(3->Lrpg(5
:pause :end
:0->Lrpg(4
:0->Lrpg(3
:if Lrpg(6=75²:then
:texte(23,1,"arret...^
:pause :axesaff
:-10->xmin:10->xmax:10->ymax:-10->ymin
:effdessin :stop
:end
:if Lrpg(6=log(7:then
:texte(23,1,"retour au menu...^
:pause :effdessin :goto (t)
:end:end
:menu("continuer","oui",ca,"sauvegarde",cx
:lbl cx:effecr :effdessin
:v->Lrpg(4
:disp"sauvegarde !!!
:goto (t)



Voila, en gros. Ne vous plaignez pas, contrairement aux autres rpg que j'ai vus sur le forum, non pas qu'ils sont nuls, mais plutot qu'ils pompent la RAM au maximum maxiangry.gif alors que le mien fait (seulement!) 8Ko ! Mais par rapport a un jeu classique, c'est hyper volumineux

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Lun 22 Juil 2013, 21:27   Citer 

Voici le code tant attendu (et dont j'ai passe la journee a recopier!)


Code
code skyrim deluxe:

-> = sto
// blabla: commentaires
L = liste
(t) = variable "thêta"
=/= inegal
attention: avant de demarrer l'application, vous devez creer une liste du nom de "rpg" comportant : (1)=5 ; (2)=0 ; (3)=0 ; (4)=0 ; (5)=0 et (6)=log(7

skyrimdx

:effecran:pleinecr
:axesnaff:effdessin
:1->xmin:95->xmax
:1->ymin:63->ymax
:disp"yeeeees! welcome","on ti-82 stats","system !!!!^                  //pour les ti 82stats et stats.fr
:disp"yeeeees! welcome","on ti-83 graph","system !!!!^                 //pour les ti 83
:disp"yeeeees! welcome","on ti-83 plus","system !!!!^                     //pour les ti 83+
:pause:Lrpg(1)->N
:if N=5 et Lrpg(2)=0:then
:disp"c'est la premier","e fois que je vo","us rencontre. je","suis le createur","du jeu et je me","nomme florian.^
:pause                                        //c'est mon vrai prenom!!!!
:disp"puis-je connaitr","e votre nom ?","(8 caracts max)"
:input"",chaine9
:effecr
:disp"vous vous nommez",chaine9,"? ^
:pause
:disp"c'est un beau no","m que vous avez","la. laissez moi","vous introduire","dans le jeu.^
:pause
:disp"vous allez comba","ttre plein de mo","nstres. vous ete","s au niveau 5,","alors gagnez en","le + possible !^
:pause
:disp"je compte sur vo","us pour les conf","iner. sur ce, je","vous laisse vaqu","er a vos occupat","ions !^
:end
:if N<15:then
:disp"zut !! j'ai oubl","ie votre nom.","rappelez le moi","(8 caracts max)
:input"",chaine9
:disp"oui, c'est ca !!","malgre tout, je","risque de vous l","e demander souve","nt.^
:end
:if N>50 et N<70:then
:disp"vous etes devenu","suffisamment for","t pour n'en fair","e que de la boui","llie !! je vous","invite a essayer","le mode hardcore
:output(8,1,"^
:pause:effecr
:disp chaine9,"je compte sur vo","us! faites de vo","tre mieux!!^
:output(1,10,"!
:end
:if N>100 et N<120:then
:disp"les combattants","de ton envergure","sont assez rares","continuez a vous","ameliorer!^
:end
:if N=125:then
:disp"je te propose un","jeu.","c'est simple: ch","oisissez une mai","n et vous gagnez","l'objet dedans.","cool, non ?^
:pause:effecr
:menu("main?","droite",dr,"gauche",ga
:lbl dr:N+5->N
:disp"obtenu:","5 niveaux !
:goto rr
:lbl ga:N+1->N
:disp"obtenu:","1 niveau !
:lbl rr:disp"merci d'avoir jo","ue !^
:end
:if N>15000:then
:disp"decidement, j'ai","bien fait de vou","s engager! votre","niveau permet de","rivaliser avec p","as mal de monde.","il faut dire que
:pause:disp"des gens comme v","ous sont excepti","onnels! je prefe","re vous avoir de","mon cote!!!^
:end
:if N>15 et N<50 ou N>70 et N<100 ou N>120 et N=/=125 et N<15000:then
:disp"votre niveau est","pas mal place au","niveau national,","mais vous pouvez","faire mieux. ame","liorez vous!!^
:end:pause
:lbl (t):effecr
:menu("skyrim deluxe v3","aventure",a,"hardcore",b,"survival",c,"quit",d,"options,e
:lbl e:effecr
:menu("options","infos version",ev,"changer nom",ec,"effacer records",er,"del sauvegarde",ed,"stop when lose?",es,"changelog",cz,"retour",(t)
:lbl cz
:disp"changelog:","v3.0.2:ajout de","l'effacage d'ecr","an et changelog","v3.0.1:ajout de","num version, pos","sibilite de reve
:pause:disp"nir au menu apre","s avoir perdu. e","galement effacag","e de donnees(rec","ord ou tout).^
:pause:disp"v3.0:maj importa","nte stable desac","tivant le fancy","et gagne en vite","sse. commentaire","s du createur au","demarrage !!^
:pause:goto e
:lbl ev
:disp"infos version:","version installe","e:","v3.0.2 build 26","date: 20/07/13","maj? oui.^
:pause:effecr
:disp"infos compte:","niveau:","exp:","cum:","meteorite:","retour ^
:output(2,8,N
:output(3,5,Lrpg(2)
:output(4,5,(N-5)*100
:output(5,11,partent(N/2
:pause:goto e
:lbl ec
:disp"entrer votre nom","8 caracteres max","sinon skyrim ris","que des bugs.
:input"",chaine9
:disp"votre nouveau no","m a ete enregist","re !!!^
:pause :goto e
:lbl er
:disp"effacer le recor","d (ceci ne peut","etre retabli) ?","press 1 for yes
:input"",a
:while a=/=1
:goto e :end
:0->Lrpg(5)
:disp"efface!^
:pause :goto e
:lbl ed
:disp"voulez vous vrai","ment supprimer v","otre partie (ope","ration non rever","sible)? taper 1:
:input"",a
:while a=/=1
:goto e:end
:5->Lrpg(1):0->Lrpg(2):0->Lrpg(3):0->Lrpg(4):0->Lrpg(5):75²->Lrpg(6)
:disp"sauvegarde suppr","imee.","adieu, vous avez","fait de votre mi","eux !!^
:pause :stop
:lbl es
:disp"quitter lorsque","vous perdez?","oui:1","non:2","retour: autre
:input"",a
:if a=1:75²->Lrpg(6
:if a=2:log(7->Lrpg(6
:disp"saved !^
:pause :goto e
:lbl d:pleinecr
:effecr:stop
:lbl a:63->ymax
:pleinecr :effdessin
:entaleat(N-5,N+5->M
:if M<1:1->M
:3N->V:partent(3.5M->U
:horizontale 10
:ligne(35,35,35,25
:ligne(35,25,25,25
:ligne(25,25,25,35
:ligne(25,35,35,35
:pt-on(31,31
:ligne(32,31,31,32
:ligne(33,28,30,28
:ligne(30,25,30,11
:ligne(30,18,39,16
:ligne(30,18,21,16
:texte(33,54,"pv:",V
:texte(26,54,chaine9,": ",N
:ligne(55,59,65,59
:ligne(65,59,65,49
:ligne(65,49,55,49
:ligne(55,49,55,59
:pt-on(58,56
:ligne(60,53,55,53
:ligne(60,53,57,49
:ligne(64,48,64,41
:ligne(71,41,71,48
:ligne(77,41,77,48
:ligne(83,41,83,52
:ligne(83,53,65,56
:texte(1,1,"ennemi:",M
:texte(8,1,"pv:",U
:texte(55,1,"un ennemi apparait !!!^
:pause
:lbl ae:0->O
:menu("votre tour:","aspire",af,"meteorite",ag,"retour",ah,"giga-griffe",ai,"lasermate",aj,"aleapik",ak
:lbl af
:partent(N/4->a
:partent(N/4->o
:goto al
:lbl ag
:partent(N/2->a
:goto al
:lbl ah
:partent(3N-V->a
:goto al
:lbl ai
:entaleat(0,1->p
:if p=1:then
:2N->a
:else
:0->a
:end
:goto al
:lbl aj
:partent(N/1.2->a
:goto al
:lbl ak
:entaleat(1,6->p
:partent(N/8)*p->a
:lbl al
:texte(55,1,chaine9," attaque !
:for(I,1,8
:texte(10,43,"x
:69!
:texte(10,43,"     :69!                   //5 espaces entre le " et les 2 points
:end
:u-a->u
:texte(55,1,"l'ennemi perd ",a," pv !!^                         //25 espaces
:texte(8,1,"pv:",u,"                                         //27 espaces
:pause
:while o=/=0
:for(I,1,8
:texte(30,40,"+
:69!
:texte(30,40,"     :69!              //5 espaces
:end:V+O->V
:texte(55,1,chaine9,"recupere ",o," pv !^
:pause
:texte(33,54,"pv:",v,"                                                     //25 espaces
:end :lbl a5
:if v=<0 ou U=<0:goto az
:texte(55,1,"l'ennemi attaque !!!
:entaleat(1,4->p
:if p=1:then
:partent(m/4->a
:goto am:end
:if p=2:then
:partent(m/2->a
:goto am:end
:if p=3:then
:entaleat(1,2->p
:if p=1:then
:partent(1.2m->a
:else:0->a
:end:goto am:end
:if p=4:partent(3.5m-u->a
:lbl am:v-a->v
:for(I,1,8
:texte(30,40,"x
:69!
:texte(30,40,"     //5 espaces
:69!
:end:texte(55,1,chaine9," perd ",a," pv !                                                // 26 espaces
:texte(33,54,"pv:",v,"                                                        // 25 espaces
:pause
:if v>0 et u>0:goto ae
:lbl az:if v=<0
:then:texte(55,1,chaine9," est k.o.!^                              //15 espaces
:pause :if Lrpg(6)=log(7:then
:texte(55,1,"retour au menu ^
:pause
:goto (t)
:end
:if Lrpg(6)=75²:then
:texte(55,1,"arret de l'applet...^
:pause:axesaff
:-10->xmin
:-10->ymin
:10->xmax
:10->ymax
:effdessin:stop
:end:end
:if u=<0:then
:texte(55,1,"l'ennemi est k.o.!                                                        // 16 espaces
:for(I,1,20
:69!:end
:texte(55,1,chaine9," a gagne 20 exp!^
:pause
:Lrpg(2)+20->Lrpg(2
:if Lrpg(2>99:then
:Lrpg(2)-100->Lrpg(2):n+1->n
:n->Lrpg(1):texte(55,1,chaine9," monte au niv ",n," !^                                           // 20 espaces
:pause:end
:menu("continuer?","oui",a,"non",(t)
:lbl b:pleinecr
:63->ymax
:menu("hardcore","difficile",ba,"tres difficile",bb,"defense chateau",bc,"retour",(t)
:lbl ba:0->(t)
:n->m:3n->v:5m->u
:goto bd
:lbl bb:160->(t)
:n->m:3n->v:6m->u
:goto bd
:lbl bc:583->(t)
:n->m:24n->v:24m->u
:lbl bd:horizontale 10
:ligne(25,25,25,35
:ligne(25,35,35,35
:ligne(35,35,35,25
:ligne(35,25,25,25
:pt-on(31,31
:ligne(32,31,31,32
:ligne(30,24,30,11
:ligne(30,18,21,16
:ligne(30,18,39,16
:ligne(31,28,33,28
:texte(26,54,chaine9,": ",n
:texte(33,54,"pv:",v
:ligne(55,59,65,59
:ligne(65,59,65,49
:ligne(65,49,55,49
:ligne(55,49,55,59
:pt-on(58,56
:ligne(60,53,55,53
:ligne(60,53,57,49
:ligne(64,48,64,41
:ligne(71,41,71,48
:ligne(83,41,83,52
:ligne(83,53,65,56
:texte(1,1,"ennemi:",m
:texte(8,1,"pv:",u
:texte(55,1,"un mechanix apparait !!^
:pause
:lbl be:0->O
:menu("votre tour:","aspire",bf,"meteorite",bg,"retour",bh,"giga-griffe",bi,"lasermate",bj,"aleapik",bk
:lbl bf
:partent(N/4->a
:partent(N/4->o
:goto bl
:lbl bg
:partent(N/2->a
:goto bl
:lbl bh
:partent(3N-V->a
:if (t)=583:goto be
:goto bl
:lbl bi
:entaleat(0,1->p
:if p=1:then
:2N->a
:else
:0->a
:end
:goto bl
:lbl bj
:partent(N/1.2->a
:goto bl
:lbl bk
:entaleat(1,6->p
:partent(N/8)*p->a
:lbl bl
:texte(55,1,chaine9," attaque !
:for(I,1,8
:texte(10,43,"x
:69!
:texte(10,43,"     :69!                   //5 espaces entre le " et les 2 points
:end
:u-a->u
:texte(55,1,"le mechanix perd ",a," pv !!^                         //23 espaces
:texte(8,1,"pv:",u,"                                         //27 espaces
:pause
:if o=0:goto bm
:for(I,1,8
:texte(30,40,"+
:69!
:texte(30,40,"     :69!              //5 espaces
:end:V+O->V
:texte(55,1,chaine9,"recupere ",o," pv !^
:pause
:texte(33,54,"pv:",v,"                                                     //25 espaces
:end
:lbl bm:if v=<0 ou u=<0:goto bz
:texte(55,1,"le mechanix attaque !!!!!                             //25 espaces
:lbl br
:entaleat(1,4->p
:if p=1:then
:partent(m/4->a
:goto bn:end
:if p=2:then
:partent(m/2->a
:goto bn:end
:if p=3:then
:partent(m/2->a
:end:goto bn
:if p=4:then
:if (t)=0:5m-u->a
:if (t)=160:6m-u->a
:if (t)=583:goto br:end
:lbl bn:v-a->v
:for(I,1,8
:texte(30,40,"x
:69!
:texte(30,40,"     //5 espaces
:69!
:end:texte(55,1,chaine9," perd ",a," pv !                                                // 26 espaces
:texte(33,54,"pv:",v,"                                                        // 25 espaces
:pause
:if v>0 et u>0:goto be
:lbl bz:if v=<0
:then:texte(55,1,chaine9," est k.o.!!!!!^                   // 11 espaces
:pause :if Lrpg(6)=log(7:then
:texte(55,1,"retour au menu ^
:pause
:goto (t)
:end
:if Lrpg(6)=75²:then
:texte(55,1,"arret de l'applet...^
:pause:axesaff
:-10->xmin
:-10->ymin
:10->xmax
:10->ymax
:effdessin:stop
:end:end
:if u=<0:then
:texte(55,1,"le mechanix est k.o.!                                                        // 10 espaces
:for(I,1,20
:69!:end
:n+1->n:n->Lrpg(1
:texte(55,1,chaine9," monte au niveau ",n," !!!!^                            // 15 espaces
:pause
:goto b
:lbl c:horiz:31->ymax
:Lrpg(4->v
:if Lrpg(4=<0 et Lrpg(3=0:then
:3n->v:v->Lrpg(4
:end
:menu("survival","continuer",ca,"retour",(t)
:lbl ca
:effdessin:15->m
:effecr:45->u
:output(1,1,"foe:
:output(1,5,m
:output(2,1,"pv:
:output(2,4,u
:output(3,8,"you:
:output(3,12,n
:output(4,8,"pv:
:output(4,11,v
:output(3,3,"vv
:output(4,3,"vv
:horizontale 9
:texte(1,1,"current streak: ",Lrpg(3
:texte(8,1,"record: ",Lrpg(5
:texte(15,1,"record-current: ",Lrpg(5)-Lrpg(3
:output(1,13,"ee
:output(2,13,"ee
:texte(23,1,"un ennemi apparait !!!^
:pause:lbl ck
:menu("attaque","simple",ce,"double",cf
:lbl ce:partent(n/2->a
:goto ch
:lbl cf:partent(n/2->a
:lbl ch:u-a->u
:texte(23,1,chaine9," attaque!^
:for(I,1,8
:output(1,13,"xx
:output(2,13,"xx
:69!:output(1,13,"ee
:output(2,13,"ee
:69!:end
:texte(23,1,"l'ennemi perd ",a," pv !^
:output(2,4,"                                           // 8 espaces
:output(2,4,u
:pause
:texte(23,1,"l'ennemi passe a l'attaque !
:8->a:v-a->v
:for(I,1,8
:output(3,3,"xx
:output(4,3,"xx
:69!:output(3,3,"vv
:output(4,3,"vv
:69!:end
:texte(23,1,chaine9," perd ",a," pv !!^                                     //8 espaces
:output(4,11,"                                  //6 espaces
:output(4,11,v
:pause
:if u>0 et v>0
:goto ck
:if u=<0:then
:output(1,13,"                                                   // deux espaces pour chaque output(
:output(2,13," 
:1+Lrpg(3->Lrpg(3
:end
:if v=<0:then
:output(3,3,"                                                     //deux espaces pour chaque output(
:output(4,3," 
:texte(23,1,"game over !!!
:69!:69!:69!
:Lrpg(3)*20->z
:texte(23,1,chaine9," gagne ",z," pts exp!^
:pause
:z+Lrpg(2->Lrpg(2
:while Lrpg(2>99
:n+1->n:n->Lrpg(1
:Lrpg(2)-100->Lrpg(2
:end
:if Lrpg(3>Lrpg(5:then
:texte(23,1,"nouveau record! felicitations!^
:Lrpg(3->Lrpg(5
:pause :end
:0->Lrpg(4
:0->Lrpg(3
:if Lrpg(6=75²:then
:texte(23,1,"arret...^
:pause :axesaff
:-10->xmin:10->xmax:10->ymax:-10->ymin
:effdessin :stop
:end
:if Lrpg(6=log(7:then
:texte(23,1,"retour au menu...^
:pause :effdessin :goto (t)
:end:end
:menu("continuer","oui",ca,"sauvegarde",cx
:lbl cx:effecr :effdessin
:v->Lrpg(4
:disp"sauvegarde !!!
:goto (t)



Voila, en gros. Ne vous plaignez pas, contrairement aux autres rpg que j'ai vus sur le forum, non pas qu'ils sont nuls, mais plutot qu'ils pompent la RAM au maximum maxiangry.gif alors que le mien fait (seulement!) 8Ko ! Mais par rapport a un jeu classique, c'est hyper volumineux

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
nouveaute
Invité
Posté le : Mar 23 Juil 2013, 12:12   Citer 

J'ajoute qu'un plug-in sera bientot realise, ca s'appelle skyrim2x. Ce programme realisera des interactions multijoueurs, donc on pourra jouer a deux avec chacun son propre niveau! Rares sont les programmew avec liaison cable! glasses.gif

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 23 Juil 2013, 13:53   Citer 

Je ne l'ai pas encore testé (un peu la flemme de tout recopier, mais je l'ai lu rapidement, et j'ai vu 2-3 trucs que tu pourrais rajouter (niveau optimisation du code winkle.gif )

Déjà au lieu de faire

Code
:disp"c'est la premier","e fois que je vo","us rencontre. je","suis le createur","du jeu et je me","nomme florian.^
:pause


Tu peux faire

Code
:disp"c'est la premier","e fois que je vo","us rencontre. je","suis le createur","du jeu et je me
:pause"nomme florian.^


Et voilà 2 octets de gagnés (et comme tu es plusieurs fois dans ce cas ça peut être intéressant.
En effet, la fonction Pause peut prendre 1 argument, qui est une variable/texte/nombre à afficher.
Il y a quelques particularités par rapport à la fonction Disp: tu ne peux afficher qu'un argument, mais si tu affiches une chaine de caractères/liste/matrice trop longue qui devrait dépasser de l'écran, tu as la possibilité de faire défiler avec les touches directionnelles pendant que tu es sur pause.

-------------------------

Le fait de devoir créer une liste avant de jouer n'est vraiment pas pratique, et tu peux contourner le problème.
Pour cela, il suffit que, au début du prgm, tu déclare la taille de la liste: si elle existait déjà, il ne se passe rien sauf si elle n'était pas à la bonne taille, sinon, elle est créée et remplie de 0.
Il te suffit alors de décider qu'un terme de la liste vaudra toujours 1, ainsi, après avoir déclaré la taille de la liste, il te suffira de tester la valeur de ce terme, et s'il vaut 0, tu sais que tu dois initialiser les valeurs.

Code
//Au début du prgm
7->dim(LRPG //On fixe la taille de la liste
If non(LRPG(7 //On teste si le 7e terme de la liste est nul (on a donc jamais joué
Then
//On déclare les valeurs de la liste
5LRPG(1)=5
0LRPG(2
0LRPG(3
0LRPG(4
0LRPG(5
log(7->LRPG(6
1->LRPG(7  //Comme ça on sait qu'on a déjà joué

//Et là tu peux même mettre des actions spéciale au début (ton introduction au jeu puisque je vois que tu en fais une)
End



-------------------------

Quelques autres remarques d'optimisation:


Code
Lrpg(1)->N


Tu n'es pas obligé de fermer tes accolades/guillemets/parenthèses etc avant un retour à la ligne ou un sto (->)
Ce qui donne donc

Code
Lrpg(1->N



-------------------------


Code
Lrpg(2)=0


Tu peux déjà optimiser en:

Code
0=Lrpg(2


Tu gagnes un octet déjà un octet.
Si tu veux aller plus loin, tu as une fonction: non( qui renvoit 1 si l'argument vaut 0, et 1 sinon.

Code
non(Lrpg(2


Tu gagnes encore un octet winkle.gif

-------------------------


Code
:disp"entrer votre nom","8 caracteres max","sinon skyrim ris","que des bugs.
:input"",chaine9


Ici je vois que tu demandes à l'utilisateur un maximum de 8 caractères, mais il peut toujours en rentrer plus malheureusement (c'est comme le bouton rouge où il y a marqué "ne pas appuyer", tu peux être sur que quelqu'un va finir par appuyer).
Pour limiter à 8 caractères tu as plusieurs solutions:
Tu testes la taille de la chaine, et tu redemande de retrer le nom si elle est plus grande que 8:

Code
:Repeat 9>longueur(Chaine9
:disp"entrer votre nom","8 caracteres max
:input"",chaine9
:End


Sinon tu peux aussi choisir de ne conserver que les 8 premiers caractères, pour cela tu as la fonction sous-chaine(chaine,début,nombre de caractères

Code
:disp"entrer votre nom","8 caracteres max
:input"",chaine9
:sous-chaine(chaine9,1,8

(EDIT: j'ai corrigé un End en trop après la remarque de Linkakro qui suit)

-------------------------


Code
:while a=/=1


Tu peux remplacer par

Code
:while a-1


De manière générale, saufs cas particuliers, à la place de A!=B tu peux mettre A-B, c'est plus rapide pour la calto

-------------------------

Une autre petite remarque (mais ça c'est mon point de vue après tu fais comme tu veux): Quand tu mets plusieurs instructions sur la même ligne je trouve que ça rend la lecture du code plus difficile (encore si c'est pour des initialisations ça peut aller mais quelque chose du style
Code
:lbl bm:if v=<0 ou u=<0:goto bz


Je trouve ça complètement indigeste crazy.gif



Sinon c'est du bon travail ! bigmouth.gif
Ta version multi joueur peut être intéressante, mais les prgm avec liaison cable ne sont pas si rares que ça en fait (même s'ils sont bien moins fréquent je te l'accorde winkle.gif )
Continue comme ça!

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 23 Juil 2013, 16:50   Citer 

Respecter les majuscules et minuscules de la calculatrice demanderait plus de travail mais permettrait de le copier dans un éditeur et de directement créer un fichier téléchargeable. Tandis que là il faudra réécrire des choses si on espère le faire.

Tu peux utiliser Output(1,1,"TEXTE") pour afficher du texte sur tout l'écran au lieu de Disp et de séparer les lignes.

Code
:Output(1,1,"C'EST LA PREMIERE FOIS QUE JE VOUS RENCONTRE. JE SUIS LE CREATEUR DU JEU ET JE ME NOMME FLORIAN.^
  // c'est plus pratique et économique quand on écrit partout et qu'on ne conserve pas le texte précédent que Disp aurait gardé.
  // mais il faut effacer l'écran si on écrit pas par dessus le texte précédent



Code
Remplace
Code
:-10->xmin
:-10->ymin
:10->xmax
:10->ymax

par
Code
ZStandard

du menu Zoom


Le manuel est mal écrit à quelques endroits, je pense que c'est le cas de la connexion des calculatrices, moi j'ai été agacé après un seul programme multijoueur. (qui a fonctionné fort heureusement)

J'ai déjà comparé les tests d'inégalité à la soustraction, ce n'est pas plus rapide, ou bien à peine, c'est seulement plus facile à écrire et à lire sur forum et calculatrice.
J'explique ça par le fait que le moyen le plus simple de comparer des nombres est détudier le bit de signe de la différence et même le flag Zero en assembleur. Ainsi la calculatrice effectuerait une soustraction de toute manière.

Ce qui se passe avec la Pause dont parle m@thieu41 se passe aussi dans l'écran principal mais sans la touche entrer. Alors si un jour tu veux afficher quelque chose de large à la fin du programme, place le simplement sur la dernière ligne sans fonction d'affichage, tu auras le même comportement sans appuyer sur entrer pour quitter.

Très bon conseil la dimension des listes et la case réservée et testée non-nulle.
Héhé je suis plus tout seul à l'enseigner. (peu importe comment tu as trouvé, seul ou inspiré)
Cependant je conseille d'utiliser la première case de la liste pour tester son initialisation plutôt que la dernière, ainsi on peut écrire n'importe quel programme sur ce principe par copier-coller d'un programme sans se demander la taille utilisée, et même on peut changer facilement la taille utilisée au sein du même programme. Et éventuellement stocker la taille ou autre non nul dedans, ça peut servir si on crée une base de donnée.
J'en profite pour rappeler diverses manières de remplir.

Code
N->dim(lA

If not(lA(1 // test pour savoir si la liste est nouvelle car terme nul

Fill(1,lA // remplissage uniforme.

0lA->lA // mise à zéro // faire attention au terme de contrôle d'initialisation

{1,A,B,C->lA // affectation complète



Pour fixer la taille d'une chaine quelle que soit sa taille sans la tester, tu peux faire aussi ça :

Code
Input "",Str1  // la caltoche attend au moins un caractère
sub(Str1+"       ",1,8->Str1   // 7 espaces pour compléter sur 8 au total

// sub=sous-Chaîne et Str1=Chaîne1

Pour obliger à utiliser des tokens de lettres et chiffres, on peut utiliser carChaîne/inString (français/anglais) pour détecter la présence de tokens invalide.
Code
Input "",Chaîne1
EffListe L1
For(A,1,longueur(Chaîne1
carChaîne("0123456789AZERTYUIOPQSDFGHJKLMWXCVBN",sous-Chaîne(Chaîne1,A,1->L1(A
End
If not(prod(L1
Disp "INVALIDE

Tu as oublié d'enlever un End dans ton conseil du maximum 8 caractères.

Placer des choses sur une seule ligne n'est pas toujours clair, et cela oblige à respecter certaines fermetures de syntaxes de fin de ligne, c'est autant d'octets qu'on n'économise pas, malgré la rigueur ajoutée par ces fermetures respectées.
Il faut aussi se rappeler que les Labels Lbl doivent toujours être en début de ligne et que les End ne doivent pas être juste après un EffVar.
http://tout82.free.fr/forum/sujet.php?sujet=2691

Placer des Goto dans les If:Then:End n'est pas rigoureux et est dangereux.
Heureusement il n'y a pas de boucle donc pas de conflit, mais cela ralentit le programme légèrement à chaque fois.
http://tout82.free.fr/forum/sujet.php?sujet=2757

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 23 Juil 2013, 20:27   Citer 

Ha je ne savais pas que la fonction Output gérait les retours à la ligne (je me suis planté pendant le ti concours alors crazy.gif )


Code
Fill(0,lA
0lA->lA


Par contre je ne vois pas pourquoi faire la deuxième méthode pour remplir de 0 au lieu de la première (ce qui serait certainement plus économe en place et en vitesse...

Pour le multi joueur je me rappelle avoir posé la question l'année dernière (mais finalement je l'ai fait en asm et pas en ti basic).
Ce qu'il faut faire c'est utiliser CaptVar() sur la calto qui reçoit la variable, et que celle qui envoi soit sur pause/input ou autre (qu'elle soit en attente quoi winkle.gif ).
Ca a l'ai assez compliqué à coordonner tout ça ...


J'ai édité pour le End en trop (et je l'ai signalé dans le post pour que ça soit compréhensible)

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 24 Juil 2013, 14:14   Citer 

Les retours a la ligne avec output(, je savais pas...
merde alors, ca va en faire du code a optimiser!!
pour le truc des labels, evidement sur ma calto, c'est pas tout a fait comme ca!! Les lbl sont en debut de ligne, j'ai deja eu le coup, j'ai failli abandonner le projet tellement ca m'a enerve.
dans tous les cas, ca ne vaudra pas un programme assembleur.
enfin sinon, le concept du jeu, ca va ou c'est de la merde?? happy.gif
enfin ne me mettez pas de fnctions en anglais, j'ai deja du mal avec randint, ipart et fpart, alors fill et tout ca, je connais pas. J'utilise une ti-82 stats.fr (c'est vrai que c'est chiant d'avoir entaleat alors qu'on a disp et output dans la meme calto... maxiangry.gif ) enfin ca fait moins de code a traduire cupsmiley.gif

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 24 Juil 2013, 14:42   Citer 

Le end en trop, j'ai fait une erreur. Dans ma calto, il n'est pas present. En tous cas, pour truc du output, merci beaucoup, car ca prend vraiment beaucoup moins de place. Depuis que j'ai cree le prog, skyrimdx n'a cesse de prendre de l'enbonpoint, si vous voyez ce que je veux dire. La premiere version, sans hardcore, survival et options, pesait moins de 900 octets, alors compare a aujourd'hui, he ben, c'est vraiment enorme.
pour les minuscules, bien sur, tout le monde sait que la ti82 stats n'a pas de minuscules, a part quelques uns comme n ou un x bizarre, et de toute facon, meme s'il y en avait, j'en aurait pas mis, car je sais pas si vous aviez une ti85 ou 86, les minuscules pesaient 2 octets chacune, alors que les majuscules seulement 1octet. (Il me semble que c'est le cas des ti83+ et ti84.).a propos du conseil comme quoi le nom ne doit pas depasser 8 lettres, il s'agit seulement d'estetique. Theoriquement, skyrimdx s'en fout si le nom fait 12 ou meme 18 lettres. C'est seulement sur les disp et output que ca va poser probleme, genre err:dim invalide. Sur le graph, comme je l'utiliser beaucoup, le texte ne genere pas d'erreur quand ca depasse l'ecran, contrairement a output. C'est pourqu'oi j'evitais de l'employer. Les bugs, ca m'enerve beaucoup!!! maxiangry.gif maxiangry.gif maxiangry.gif

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 24 Juil 2013, 19:41   Citer 

Les minuscules innexistantes ou de 2 octets ne sont pas la cause de ma remarque bien que je sois d'accord avec ta réponse.
Je pensais copier ton code dans un éditeur pour créer un fichier téléchargeable, mais l'abscence de casse dans les noms de fonctions rend impossible la copie directe.

Moi aussi je déteste certaines contraintes et défauts de concept de TI. (sous-entedu que ce ne sont pas des bugs)
Je déteste aussi les bugs.
Cependant il y a peu de bugs, plutôt des défauts.

Le texte graphique génère des erreurs quand on indique une adresse invalide comme Output. Quand le texte dépasse par en bas ou par la droite, le fait que Texte ne revienne pas à la ligne est gênant. (j'aurais voulu pouvoir choisir, ce n'est pas un bug pour autant)

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 24 Juil 2013, 20:37   Citer 

Mais là ce n'est pas vraiment un bug, puisque c'est voulu, donc c'est plutot une particularité (ou une contrainte si on veut) de la fonction...

Mais après si tu veux absolument faire un retour à la ligne tu peux toujours te débrouiller et faire un prgm qui sert à afficher du texte, et qui utilise la taille de la chaine à afficher pour savoir si on doit ou pas aller à la ligne ^^
Ou sinon tu te débrouilles à la base pour être sur que ça ne dépassera pas...

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Jeu 25 Juil 2013, 16:34   Citer 

Evidemment. Enfin, faut pas se plaindre, on a quelque chose qui se rapproche le plus d'une gameboy(ou presque!!). Quelques choses que j'ai essayees mais qui ont fait des bugs d'execution ou des trucs assez genants: lorsque vous avez dit que lRPG(1)->N pouvait se remplacer par lRPG(1->N et caetera, certaines fois ca fait des erreurs de syntaxe, ou meme, cas plus etonnant, l'argument n'a pas ete verifie(et la fonction a ete tout simplement ignoree. Resultat, je me retrouvais avec zero pv en survival!! D'ailleurs, quand il s'agit d'une variable liste a mettre dans une lettre, ca marche, sinon, quand il s'agit d'une comparaison du style"if lrpg(1=n:then" ca ne marche pas! Il faut essayer avec "if n=lrpg(1" et encore, dans certains cas, je ne peux l'expliquer, c'est bizarre...
Autre truc important, je viens de terminer le mode multijoueur! Je vais me faire le plaisir de le recopier(encore bigmouth.gif bigmouth.gif bigmouth.gif !!!) et je vous le poste d'ici peu. Pour info, je ne peux le tester, car dans ce cas la il me faudrait une deuxieme calto (ti84+ cse, soyons exigeants!) Et encore une seconde 82stats ne me servirait a rien(a part avoir 2*27ko sur deux ram separees) bref, si quelqu'un qui a deux ti pourrait le faire a ma place svp, ca serait gentil, surtout que c'est pas la mort a recopier, precisement 1416 octets, soit le jeu final tournant autour de 9252 octets. Pour l'instant, je n'ai pas fusionne les deux applets, pas le temps et peut etre pas avant que je recopie maxiangry.gif
c'etait quand meme du boulot, tout seul! Et sa c'est pas fait en 5-6 heures, le developpement a dure presque toute l'annee, a chaque fois je faisais des retouches au code!! cupsmiley.gif jsuis quand meme content de moi!

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 25 Juil 2013, 18:04   Citer 

Ca a l'air sympa ^^
Essaye de respecter la casse (majuscules/minuscules etc), comme ça on pourra facilement en faire un programme sur un éditeur, et le tester sur ému/calto sans avoir à tout recopier...

Mais tu ne pourra pas connecter une ti 82stats.fr à une Ti 84+CSE (pas la même gestion des cables de connexion...)


Citer : rpgcreator
Quelques choses que j'ai essayees mais qui ont fait des bugs d'execution ou des trucs assez genants: lorsque vous avez dit que lRPG(1)->N pouvait se remplacer par lRPG(1->N et caetera, certaines fois ca fait des erreurs de syntaxe, ou meme, cas plus etonnant, l'argument n'a pas ete verifie(et la fonction a ete tout simplement ignoree. Resultat, je me retrouvais avec zero pv en survival!! D'ailleurs, quand il s'agit d'une variable liste a mettre dans une lettre, ca marche, sinon, quand il s'agit d'une comparaison du style"if lrpg(1=n:then" ca ne marche pas! Il faut essayer avec "if n=lrpg(1" et encore, dans certains cas, je ne peux l'expliquer, c'est bizarre...


Attention, on a dis qu'on pouvait ne pas fermer guillemets/parenthèses etc avant un retour à la ligne ou un sto, pas n'importe quand!
Si tu fais comme tu dis "if lrpg(1=n:then", la calto va devoir respecter les priorités opératoires! Il y a des parenthèses, donc ce qui est entre parenthèses va être prioritaire... Elle va alors tester 1=n, renvoyer 1 si n=1, et 0 sinon. Ensuite elle va chercher lrpg(1 si n=1, et lrpg(0 sinon (ce qui provoquera en effet une erreur dans le second cas)! Ensuite elle teste (dans le premier cas) si lrpg(1 est différent de 0, dans ce cas elle passe au Then, et sinon, chercher un Else/End.
Tandis que si tu fais "if n=lrpg(1:then", là tu va bien tester si n est égal à lrpg(1, puisque les parenthèses ne concernent que le "1"!

La calto en fait ferme toutes les parenthèses/guillemets etc qui n'ont pas été fermées juste avant un retour à la ligne ou un sto, sinon elle ne peut pas deviner que tu voulais la fermer dans ton exemple...
Par exemple si tu mets:

Code
3(5-N  //Tu comprends bien qu'il faut calculer 3(5-N), et non pas 3*5-N, même si les parenthèses n'étaient pas fermées, tu te doutes bien que ça veut dire que normalement elles se ferment à la fin du calcul, et pas en plein milieu (ça change tout sinon)


Ce manque de rigueur est rare dans les langages de programmation, mais en l’occurrence ça permet d'économiser place et vitesse winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 26 Juil 2013, 0:09   Citer 

La simulation multijoueur se fait même seul dans un émulateur. On simule les calculatrice sur un ordinateur.
Pour le faire il faut soit recopier manuellement comme sur une calculatrice, ce qu'on ne veut pas, soit créer un fichier téléchargeable et le transmettre aux calculatrice virtuelles émulées.
Puisque tu n'as pas respecté la casse, celui qui le ferait devrait commencer par apporter des retouches au texte pour qu'il soit compréhensible à un logiciel qui s'occupera de créer ces fameux fichiers téléchargeables.

J'attend la prochaine version, je pense que je m'occuperai de la création du téléchargeable si personne ne l'a déjà faite.


Citer : m@thieu41
Attention, on a dis qu'on pouvait ne pas fermer guillemets/parenthèses etc avant un retour à la ligne ou un sto, pas n'importe quand!

Je confirme !
Les opérations respectent des priorités.
Le manuel te donneras la liste complète des priorités.

Remarque pour la culture : la ti82 donne priorité aux produits devant la division, alors que les autres TI que je connais font le contraire : ainsi A/BC est compris comme A/(BC) par la 82 au lieu de (A/B)C pour les autres.

Méfiez vous des juxtapositions de commande sur la même ligne, il faut parfois respecter les fermetures de syntaxe, car les ":" ne sont pas un retour à la ligne. Je suis troublé par "if n=lrpg(1:then" bien que cela fonctionne par expérience.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Ven 26 Juil 2013, 11:26   Citer 

Je rigolais pour la ti84+cse. De toute facon, il fallait refaire le code en entier, car vu que la resolution n'est pas du tout la meme(320*240 dont 265*165 utilisables en ti-basic contre 96*64 dont 95*63 utilisables en ti-basic). Donc la ti84+cse ne fonctionnerait pas correctement avec mon prog, ca ferait bizarre...

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
rpgcreator
Invité
Posté le : Ven 26 Juil 2013, 11:43   Citer 

Salut de nouveau, voila la partie multijoueur:
la, il s'agit de la partie multi joueur de skyrim82, qui permet de jouer entre deux ti-82stats/83+

:effecr
:output(1,1,"r2pg, the first rpg in ti-basic with a real player in front of you on ti-82 stats^
:pause //a la place de ti-82 stats, vous pouvez mettre le modele de votre calto, histoire de faire plus adapte happy.gif
:effecr
:output(4,2,"preparation. veuillez patienter
:Lrpg(1->n
:3n->v:0->a:0->z:0->(t):0->y:0->o
:menu("r2pg v0.5 beta","joueur 1",j1,"joueur 2",k1,"quitter",d
:lbl d:effecr :stop
:lbl j1
:effecr
:output(4,2,"+------------+ ICONNEXION...I +------------+
:581->(t):457->o
:envoi((t)
:envoi(o
:repeat z=124 et y=256
:captvar(z
:captvar(y
:end :effecr
:output(1,1,"connecte avec succes !!!^
:pause
:Lrpg(1->n:3->v
:repeat m=/=0
:captvar(m
:captvar(u
:end
:output(1,1,"pl2: vv pv: vv
:output(5,1," vv pl1: vv pv: +--------------+
:output(1,5,m
:output(2,4,u
:output(5,11,n
:output(6,10,v
:output(8,1,"debut du duel! ^
:pause
:lbl j2
:menu("votre tour","meteorite",j3,"giga-griffe",j4,"retour",j5
:lbl j3
:partent(n/2->
:goto j6
:lbl j4
:entaleat(0,1->p
:if p=1:then:2n->a:else:0->a:end
:goto j6
:lbl j5
:partent(3n-v->a
:lbl j6
:output(8,1,"vous attaquez !
:u-a->u:envoi(a
:repeat a=0
:envoi(u
:captvar(a
:end
:output(2,4,u
:output(8,1,"ennemi blesse!^
:pause
:output(8,1,"attente de p2...
:1->a
:repeat a=/=1
:end
:output(6,10,v
:output(8,1,"il vous blesse!^
:pause
:lbl j7
:if u>0 et v>0 :goto j2
:effecr
:if u=<:then
:output(1,1,"joueur 1 a gagne!!! bravo! felicitations!!^ II II I I +---------+
:pause :end
:if v=<0:then
:output(1,1,"joueur 2 a gagne!!! deception... II II ° ° ° ° ----------- ^
:pause :end :stop

:lbl k1
:effecr
:output(4,2,"+------------+ ICONNEXION...I +------------+
:124->z:256->y
:envoi(z
:envoi(y
:repeat (t)=581 et 457=o
:captvar((t)
:captvar(o
:end :effecr
:output(1,1,"connecte avec succes !!!^
:pause
:Lrpg(1->m:3->u
:repeat n=/=0
:captvar(n
:captvar(v
:end
:output(1,1,"pl1: vv pv: vv
:output(5,1," vv pl2: vv pv: +--------------+
:output(1,5,n
:output(2,4,v
:output(5,11,m
:output(6,10,u
:output(8,1,"debut du duel! ^
:pause
:lbl k2
:output(8,1,"attente de p2...
:1->a
:repeat a=/=1
:end
:output(6,10,u
:output(8,1,"il vous blesse!^
:pause
:menu("votre tour","meteorite",k3,"giga-griffe",k4,"retour",k5
:lbl k3
:partent(m/2->a
:goto k6
:lbl k4
:entaleat(0,1->p
:if p=1:then:2m->a:else:0->a:end
:goto k6
:lbl k5
:partent(3m-u->a
:lbl k6
:output(8,1,"vous attaquez !
:v-a->v:envoi(a
:repeat a=0
:envoi(v
:captvar(a
:end
:output(2,4,v
:output(8,1,"ennemi blesse!^
:pause
:lbl k7
:if u>0 et v>0 :goto k2
:effecr
:if v=<0:then
:output(1,1,"joueur 2 a gagne!!! bravo! felicitations!!^ II II I I +---------+
:pause :end
:if u=<0:then
:output(1,1,"joueur 1 a gagne!!! deception... II II ° ° ° ° ----------- ^
:pause :end :stop

Desole, j'ai pas recopie avec les minuscules, j'ai pas mon pc et comprenez que c'est difficile, meme pour se connecter (bravo la nouvelpe technologie!!! bigmouth.gif ). Bref ca m'enerve, d'autant que j'ai mis plus de temps a recopier ca que le jeu complet(je vous jure, c'est pas possible) alors que ce truc la fait que 1671 octets. Vous trompez pas au niveau des espaces, ca serait dommage... moodforlove.gif

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 26 Juil 2013, 13:02   Citer 

Dommage que tu n'ai pas respecté la casse...

Tu es sûr que ton teste de connexion marche? Tu l'as testé?
Il me semble que ce n'est pas vraiment comme ça qu'il faut faire, mais maintenant je peux me tromper... Par contre tu devrait faire un sorte de quitter la tentative de connexion si on appuie sur une touche, au cas où on n'arrive pas à se connecter par ex.

Ta connexion ne marchera pas selon moi...
Si tu fais :

Code
//Calto n°1
1->A
2->B
Envoi(B
Repeat A=2
CaptVar(A
End

//Calto n°2
1->B
2->A
Envoi(A
Repeat B=2
CaptVar(B
End


Ca ne marche pas (du moins sur émulateur...) parce que tu n'es jamais sur pause/envoi quand l'autre calto est sur réception (tu tentes de réceptionner en même temps sur les 2 calto...)

Un autre code qui ne marche pas:

Code
//Calto n°1
1->A
2->B
Repeat A=2
Envoi(B   //On envoit B
CaptVar(A  //On réceptionne A
End
EffVar B //Pour éviter une fausse connexion si on retente, il faut rentrer un autre nombre dans B

//Calto n°2
1->B
2->A
Repeat B=2
CaptVar(B  //On recoit B
End
Envoi(A  //Ca veut dire qu'on est connexté, donc on envoit A
EffVar A //Pour éviter une fausse connexion si on retente, il faut rentrer un autre nombre dans A


Je ne vois pas pourquoi la deuxième façon ne fonctionne pas... Une idée?

EDIT: En fait j'ai trouvé une astuce qui marche (du moins sur ému):

Code
//Calto n°1
1->A
2->B
Repeat A=2
Pause   //On envoit B
CaptVar(A  //On réceptionne A
End  //Sinon ici on peut considérer que si A=1 c'est qu'on a appuyé sur entrer (et que l'autre calto ne pouvait pas envoyer de variable), et sinon si A!=2 et A!=1, qu'il y a eut une erreur de connexion (un autre jeu multi joueur a été lancé sur une autre calto par ex ^^), ou qu'on a appuyé sur entrer et que l'autre calto a envoyé une variable...
1->B //Pour éviter une fausse connexion si on retente, il faut rentrer un autre nombre dans B

//Calto n°2
1->B
2->A
Repeat B=2
CaptVar(B  //On recoit B
//Peut être insérer ici un moyen de quitter
End
Pause  //Ca veut dire qu'on est connecté, donc on envoit A
1->A  //Pour éviter une fausse connexion si on retente, il faut rentrer un autre nombre dans A


Ce code marche, bien sûr tu peux remplacer 2 par un nombre un peu plus tordu (78465.678934268 par ex ) pour être vraiment sur qu'on est dans le jeu ^^

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Sam 27 Juil 2013, 19:44   Citer 

A moi de corriger!! XD

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Dim 28 Juil 2013, 11:32   Citer 

Enfin, je vous rappelle que je suis sur tablete, et par consequent, a part andie graph, j'ai rien comme emulateur similaire a vti ou wabbitemu, mais, en plus, je ne peux tester, car je n'ai qu'une calto 82stats. Enfin, c'est vrai que de faire passer deux donnees en sens inverse par cable en basic, c'est dur!!!! Je l'ai remplace par un envoi d'une variable, car si ca marche dans un sens, ca marche dans l'autre... j'ai mos a jour sdx, il y a un generateur de maps, c inyerressant..

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1, ,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink