Poster un nouveau sujet Poster une réponse
[Générateur de forêt]+Sauvegarde+Fonctions rajoutées
Auteur Message
cam!



Autorisation : Membre
Nb de messages : 36
Inscrit le : Dim 12 Jui 2011, 17:50
Posté le : Sam 30 Juil 2011, 13:50   Citer 

Voici une nouvelle version de mon générateur de forêt , nettemement améliorée, comme me l'avais conseillé de faire linkakro. winkle.gif
On peut sauvegarder en quittant, couper des arbres, et il y a un

curseur.
Par rapport à ma première version, on peut dire que c'est une belle

avancée.


Code

EffEcr
4->S:4->T
Menu("QUE FAIRE?","NEW",0,"CHARGER",1
Lbl 0
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAX
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAY
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAT
For(L,1,20
entAléat(1,16->X
X->lAX(L)
entAléat(2,8->Y
Y->lAY(L)
entAléat(1,2->A
A->lAT(L):End
Lbl 1
For(L,1,20
lAX(L)->X
lAY(L)->Y
lAT(L)->A
If A=1
Output(Y-1,X,"O
If A=2
Output(Y-1,X,"Q
If A!=0
Output(Y,X,"I
End
While 1
Output(T,S,"+
codeTouche->K
If K=24 et S>1
Then
Output(T,S," "
S-1->S:Goto 1
End
If K=26 et S<16
Then
Output(T,S," "
S+1->S:Goto 1
End
If K=25 et T>1
Then
Output(Output(T,S," "
T-1->T:Goto 1
End
If K=34 et T<8
Then
Output(T,S," "
T+1->T:Goto 1
End
If K=105:Then
For(L,1,20
If S=lAX(L) et lAT(L)!=0 et T=lAY(L):Then
0->lAT(L)
EffEcr:Goto 1
End:End:End
End



Amusez vous bien!!! bigmouth.gif

----------------------
cam!
 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 : Dim 31 Juil 2011, 16:07   Citer 

Je n'ai pas testé ton prog mais je peux tout de suite te donner quelques améliorations simples et efficaces


Code

{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAX
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAY
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAT


devient :

:20
:rep->dim LAX
:rep->dim LAY
:rep->dim LAT
:remplir(0,LAX
:remplir(0,LAY
:remplir(0,LAT



Ce qui nous fait tout de même une économie de 97 octets bigmouth.gif bigmouth.gif bigmouth.gif

sinon il y a

Code

If A=1
peut s'écrire
If A

If A!=0
devient
If non(A!




Ah et

Citer

Output(Output(T,S," "



Il n'y aurait pas un output en trop? godgrace.gif godgrace.gif godgrace.gif





Citer

If K=24 et S>1
Then
Output(T,S," "
S-1->S:Goto 1
End
If K=26 et S<16
Then
Output(T,S," "
S+1->S:Goto 1
End
If K=25 et T>1
Then
Output(Output(T,S," "
T-1->T:Goto 1
End
If K=34 et T<8
Then
Output(T,S," "
T+1->T:Goto 1
End



Peut s'écrire

Code

S-(K=24 et S>1)+(K=26 et S<16->S
T-(K=25 et T>1)+(K=34 et T<8->T
If K [différent de]0
Output(T,S," "
goto1



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



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 02 Aoû 2011, 0:09   Citer 

J'ai eu du mal à comprendre la fonction de déforestation par appui sur "entrer" et l'intérêt de rafraîchir complètement l'écran.
C'eût été bien de préciser que la nouveauté est la déforestation.

calcugeek :
Ton "goto 1" est faux car il ne doit être executé que si les touches flèches ou entrer sont pressées.
Un deuxième inconvénient est lié à cette façon de condenser les déplacements : si on appuie sur une touche innutile, cela provoque de nouveau le chargement de l'écran.
Ces problèmes se résolvent avec d'autres éléments du programme.


Autre hic : si deux arbres ont été générés pile au même endroit, la fonction de déforestation n'efface que le prmier et cela peut surprendre.
De plus le Goto qui provoque ça est à l'intérieur d'une boucle.



Code
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAX
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAY
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}->lAT

devient :

20
rep->dim LAX
rep->dim LAY
rep->dim LAT
remplir(0,LAX
remplir(0,LAY
remplir(0,LAT

voire même

20->dim(lAX
Remplir(0,lAX
lAX->lAY
lAX->lAT

Et on peut même utiliser les listes de base : plus facile à saisir et nécessitant moins de code. (cf les codes complets)


Enfin :
Code
EffEcr
4->S:4->T
Menu("QUE FAIRE?","NEW",0,"CHARGER",1
Lbl 0
ClrList L1,L2,L3
For(L,1,20
entAléat(1,16->L1(L)
entAléat(2,8->L2(L)
entAléat(1,2->L3(L)
End

Lbl 1
For(L,1,20
L1(L)->X
L2(L)->Y
L3(L)->A
If A
Output(Y,X,"I
If A=1
Output(Y-1,X,"O
If A=2
Output(Y-1,X,"Q
End

Output(T,S,"+
Repeat somme(K={24,25,26,34,105       
codeTouche->K
End
Output(T,S," "
min(16,max(1,S-(K=24)+(K=26->S
min(8,max(1,T-(K=25)+(K=34->T

If 105=K
Then
For(L,1,20
If S=L1(L) et T=L2(L) et L3(L
Then
0->L3(L)
EffEcr
End:End:End
Goto 1



Cette autre grosse modif évite de rafraîchir l'écran systématiquement. (plus beau mais plus lourd)
J'ai tenté de l'éviter aussi dans la fonction de déforestation.
J'ai même tenté de tenir compte des plans.
J'ai abandonné ces deux dernières idées car c'était bien compliqué.

Néanmoins j'ai conservé la façon d'afficher les arbres pour simuler les mêmes enchevêtrement que le prog original.


Code
EffEcr
4->S:4->T
Menu("QUE FAIRE?","NEW",0,"CHARGER",1
Lbl 0
ClrList L1,L2,L3
{8,16}->dim([A]
For(L,1,20
entAléat(1,16->L1(L
entAléat(2,8->L2(L
entAléat(1,2->L3(L
End

Lbl 1
Remplir(0,[A]
For(L,1,20
L1(L)->X
L2(L)->Y
L3(L)->A
If A
3->[A](Y,X
If A
Output(Y,X,"I
A->[A](Y-1,X
If A=1
Output(Y-1,X,"O
If A=2
Output(Y-1,X,"Q
End

Lbl 2
Output(T,S,"+
Repeat somme(K={24,25,26,34,105       
codeTouche->K
End
Output(T,S," "
[A](T,S->A
If A=1
Output(T,S,"O
If A=2
Output(T,S,"Q
If A=3
Output(T,S,"I
min(16,max(1,S-(K=24)+(K=26->S
min(8,max(1,T-(K=25)+(K=34->T

If 105=K and A
Then
For(L,1,20
If S=L1(L) and T=L2(L) and L3(L
0->L3(L
End:End
If Rép
Goto 2
ClrHome
Goto 1



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



 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Jeu 03 Nov 2011, 15:15   Citer 

Alors j'ai eu beaucoup de mal à comprendre toutes tes histoires de matrices, de min, de max, de x, de Y, etc ... et même maintenant c'est pas encore très clair mais je commence doucement à toucher du doigt ses notions laugh.gif
Simplement quand j'execute ton programme, parfois oui parfois non, il reste un ou deux arbres incoupables : quand je passe le + sur leur tronc, ces mêmes troncs disparaissent alors je suis très content que le tronc est disparu mais s'il y'a pas de tonc je peux pas faire disparaitre le " O" ou le "Q". frozen.gif
Si t'avais une solution miracle linkakro ... eyeonly.gif

 Adresse email Haut de page Bas de page 
 
cam!
Invité
Posté le : Ven 04 Nov 2011, 19:30   Citer 

Le programme n'a pas ete fait et reflechis par linkakro mais par moi déjà.
Ensuite linkakro ne fait que de corriger mais aussi critiquer les programmes. Sur ce , voilà.jespere que linkakro le sauveur taideras! Moi j'ai asser donne lol

  Haut de page Bas de page 
 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Ven 04 Nov 2011, 21:54   Citer 

si ca peut te faire plaisir :p
mais la CORRECTION DE TON PROGRAMME FAIT PAR LINKA.... offrait plus d'avantage donc j'ai plutôt testé cette corection winkle.gif mais ne tkt pas le tien m'a également beaucoup interessé et je te suis grandement reconnaissant de l'avoir crée ;p

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Ven 04 Nov 2011, 23:29   Citer 

Ouh ça c'était envoyé tonio winkle.gif

Allez euh cam une question ^^
A quoi peut bien servir ton programme ? Tu nous prépares un rpg sylvestre ? (remarque ça pourrait être sympa moi j'dis winkle.gif )

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Sam 05 Nov 2011, 11:38   Citer 

nan mais sérieusement je trouvais que l'idée était bonne, on peut imaginer que dès qu'on coupe un arbre on gagne un " bois " et qu'après on aille le vendre pour tant de sou ou que ca nous permette de créer une arme ou n'importe quoi ... Quelques idées commencent à fleurir en moi laugh.gif

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 05 Nov 2011, 13:45   Citer 

j'aurais plutot dit "quelques idées commencent a POUSSER en moi".

Non ? godgrace.gif laugh.gif clown.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Dim 06 Nov 2011, 21:02   Citer 

non fleurir c'est plus joli :p
et ca y est j'ai TOUT compris laugh.gif en fait, c'est quand je supprime un arbre alors qu'un autre arbre est caché en dessous, eh bien l'arbre caché en dessous ne peut plus être coupé ... c'est triste mais c'est ainsi, la j'ai plus ma calto mais dès que je la récupère, je trouverais une solution, ayez foi en moi !!!!!!! laugh.gif

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Dim 06 Nov 2011, 23:17   Citer 

Il y a des arbres cachés ... ? Uhh, va falloir que je recopie le programme pour y comprendre quelque chose moi !
Bon allez dès que je reçois la ti-84 pocket je regarde comment marche ti connect, je mets quelques petits (ou gros !) programmes, et après je regarde ça je suis intrigué winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
cam!
Invité
Posté le : Lun 07 Nov 2011, 0:34   Citer 

Oui il y a des arbres "caches" xD
En fait pendant la generation il n'y a pas de condition pour savoir si
La place est déjà prise!
Voilà. Aufait ne vous prenez pas la tete pour ce programme sans importance.
Mais tonio tu m'a ptete donne une idee pour un rpg!

  Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 07 Nov 2011, 17:53   Citer 

Oh non perso je me prend pas la teête j'aime résoudre des problèmes sans (à priori) importance laugh.gif

(et en l'occurence ça m'aide à comprendre le basic que de recopier divers programmes aussi cupsmiley.gif )

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Lun 07 Nov 2011, 22:40   Citer 

En fait avec un pote on voudrait faire un gros bon rpg sur 82, alors on a qq idées mais on en est au tout début et ca va surement nous prendre qq mois
En tout cas, content de servir à qqchose laugh.gif
Bon sinon j'ai trouvé une petite astuce qui fait perdre de son coté aléatoire un ton programme mais qui lui évite les bugs
Je remplace For(L,1,20 par For(L,1,16 et EntAleat(1,16 par L
Je vais encore y reflechir pour voir si on peut pas faire mieux mais je crois qu'on est arrivé à un bon compromis laugh.gif

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





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