Poster un nouveau sujet Poster une réponse
Générateur de forêt
Auteur Message
cam!
Invité
Posté le : Sam 30 Avr 2011, 0:29   Citer 

Bonjour a tous! Voici un editeur de foret! Ca peut toujours servir.
Cree par un seconde ^^ premiere année de programmation.
Ps: je n'utilise jamais de then et de else.




Code

Effecran
Menu("","JOUER",A,"CREDITS",B,"QUITTER",C)
Lbl C:Stop
Lbl B
output(4,4,"Cam.2011"
For(L,1,200
End
Prgrm"FORET"
LblA
0->R
Menu("","petite foret",D,"grande foret",E
LblD:20->Z
LblE:40->Z
Repeat R=Z
EntAleatoire(1,16)->X
EntAleatoire(1,7)->Y
Output(Y,X,"0
Output(Y+1,X,"I
End



  Haut de page Bas de page 
 
Akmdad



Autorisation : Membre
Nb de messages : 717
Inscrit le : Mar 22 Jui 2010, 21:03
Posté le : Sam 30 Avr 2011, 1:00   Citer 

hahaha c'est sympa!!!

pour te mettre a l'epreuve, essaie de mettre ca en mode graphique, et fait en sorte qu'on ai d'autres choix ;p

----------------------
retrouvez moi sur twitter!!!


j'ai une ti 82 stats fr et une ti89 titanium happy.gif
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 30 Avr 2011, 8:34   Citer 

C'est pas mal ouais, le code pourrait être encore simplifié et amélioré, pas grand chose, mais juste pour les retouches, ça me démange.


Code

Effecr
Lbl 0
Menu("","JOUER",A,"CREDITS",B,"QUITTER",C)
Lbl B
output(4,4,"Cam.2011"
For(Z,1,200:End
Goto 0
LblA
0->R
Menu("","PETITE FORET",D,"GRANDE FORET",E
Lbl E
20
Lbl D
Ans+20
Ans->Z
Repeat R=Z
entAleat(1,16->X
entAleat(1,7->Y
Output(Y,X,"0
Output(Y+1,X,"I
End
Lbl C



EDIT: ouais, non, en fait, ça change rien.

 Adresse email Haut de page Bas de page 
 
cam!
Invité
Posté le : Sam 30 Avr 2011, 10:28   Citer 

Merci pour vaux reponses. Ca fait plaisir, et ca donne envie de mettre une nouvelle version! +une explication (aux debutants) : pourquoi Entaleatoire(1,7)->Y alors que Y peut aller jusqu'a 8? On verra!



Code

Effecran
Menu("","JOUER",A,"CREDITS",B,"QUITTER",C)
Lbl C:Stop
Lbl B
output(4,4,"Cam.2011.V2"
For(L,1,200
End
Prgrm"FORET"
LblA
0->R
Menu("","petite foret",D,"grande foret",E,"TOUNDRA",F
LblD:20->Z
LblE:40->Z
Repeat R=Z
EntAleatoire(1,16)->X
EntAleatoire(1,7)->Y
EntAleatoire(1,3)->A
If A=1:Output (Y,X,"0
If A=2:Output(Y,X,"O
If A=3:Output(Y,X,"Q
Output(Y+1,X,"I          //Y+1=8! Or si Y+1=9,(avec justement Y=8), crash!//
End

LblF
Repeat R=40
EntAleatoire(1,16)->X
EntAleatoire(1,7)->Y
Output(Y,X,"Y
Output(Y+1,X,I
R+1->R
End



  Haut de page Bas de page 
 
cam!
Invité
Posté le : Sam 30 Avr 2011, 10:41   Citer 

Je m'assurais de ne plus mettre 2 posts a la fois...
Nouveaux ajouts!
Combien d'arbres?
Retour au menu! Enfin!


Code

Lbl 0
Effecran
Menu("","JOUER",A,"CREDITS",B,"QUITTER",C)
Lbl C:Stop
Lbl B
output(4,4,"Cam.2011.V3"
For(L,1,200
End
Goto 0
LblA
0->R
Menu("","petite foret",D,"grande foret",E,"TOUNDRA",F
LblD:EntAleatoire(0,20)->Z
LblE:EntAleatoire(20,40)->Z

Repeat R=Z
EntAleatoire(1,16)->X
EntAleatoire(1,6)->Y
EntAleatoire(1,3)->A
If A=1:Output (Y,X,"0
If A=2:Output(Y,X,"O
If A=3:Output(Y,X,"Q
Output(Y+1,X,"I          //Y+1=7! Or si Y+1=8,(avec justement Y=7), problème d'affichage!//
End
Output(8,1,"arbres:"
Output(8,8,Z
Output(8,10,"Arbres
Pause
Goto 0

LblF
Repeat R=40
EntAleatoire(1,16)->X
EntAleatoire(1,7)->Y
Output(Y,X,"Y
Output(Y+1,X,I
R+1->R
End
Pause
Goto 0



  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 01 Mai 2011, 1:41   Citer 

Deux erreurs se balladent : le nombre d'arbre toujours suppérieur à 20 et la boucle sans incrément.
J'ai aussi bidouillé des trucs pour réduire le code.
L'affichage de Z gâche tout.

Code
Lbl 0
Effecr
Menu("","JOUER",A,"CREDITS",B,"QUITTER",C)
Lbl B
output(4,4,"Cam.2011.V3"
For(L,1,200
End
Goto 0
Lbl A
1->B
0      //ne l'oubliez pas
Menu("","petite foret",D,"grande foret",E,"TOUNDRA",F
Lbl E:20:Lbl D
entAléat(Ans,20+Ans->Z
DelVar B
Lbl F
For(R,1,Z
EntAleatoire(1,16)->X
EntAleatoire(1,6)->Y
EntAleatoire(1,3)->A
If A=1:Output (Y,X,"0
If A=2:Output(Y,X,"O
If A=3:Output(Y,X,"Q
If B:Output(Y,X,"Y
Output(Y+1,X,"I
End
Output(8,1,"arbres:"
Output(8,8,Z
Pause
Goto 0
Lbl C



----------------------
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 
 
cam!
Invité
Posté le : Dim 01 Mai 2011, 12:00   Citer 

Merci et en fait une nouvelle V5 pendant que j'avais un peu de temps!
Ya du sol,winkle.gif


Code

Effecran
Lbl 0
Menu("","JOUER",A,"QUITTER",B
Lbl B : STOP
Lbl A
0->R
Menu("",MiniFORET",D'"GRANNDE FORET",E,"TOUNDRA",F
Lbl D : entAlet(20,40)->T : Goto 1
Lbl F : Goto 2
Lbl1
1->B
1->C
Repeat C=8
Repeat B=16
Output(C,B,".
B+1->B
End
C+1->C
1->B
End
Repeat R=T
EntAleat(1,16)->X
EntAleat(1,6)->Y
Output(Y,X."O
Output(Y+1,X,"I
R+1->R
End
Pause
Goto 0
Lbl2
(Recopier après (version V4).
-----
Cam!
-----



  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 01 Mai 2011, 14:06   Citer 

Tu t'obstines à maintenir des trucs qui ont été déconseillées par deux personnes... Dommage.
Quant à moi j'avais fait 1 erreur.


Code
Lbl 0
EffEcr
output(4,4,"Cam.2011.V7"
Output(5,4,"AVEC LINKAKRO
For(L,1,200
End
Effecr
Menu("","JOUER",A,"QUITTER",C)
Lbl A

1->B
40->T
0      //ne l'oubliez pas
Menu("","MINI FORET",D,"GRANDE FORET",E,"TOUNDRA",F
Lbl E:20:Lbl D
entAléat(Ans,20+Ans->T
DelVar B
Lbl F

For(Y,1,8
For(X,1,16
Output(Y,X,".
End
End

For(R,1,T
EntAleatoire(1,16)->X
EntAleatoire(1,7)->Y
EntAleatoire(1,3)->A
Output (Y,X,"0
If B
Output(Y,X,"Y
Output(Y+1,X,"I
End
Pause

Goto 0
Lbl C



----------------------
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 
 
cam!
Invité
Posté le : Lun 02 Mai 2011, 18:46   Citer 

Nan man! Au contraire, ca me sert beaucoup! (Je rappelle
Que c'est ma toute premiere anne de programmation).

Par ailleur,pour le sol, bah la boucle j'ai GALERE a la faire!
Et toi, tu la fais en quoi, 2 lignes!
Eh bah je te dit merci et c'est bien d'aider.
Certes ce programme sert (a rien) mais c'est amusant de s'entrainer.
Par ailleurs, j'ai fais un curseur en forme de plus "+" mais je sais le deplacer,
Mais comment faire pour suprimer sa position d'avant sans effacer les arbres/sol ??
karate.gif

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 02 Mai 2011, 21:58   Citer 

Si tu te contentes d'écrire des points dans ton sillon, les arbres disparaîtront...
Il faudrait stocker les coordonnées des arbres MAIS c'est lourd.
Une des solutions est la matrice. C'est un tableau dont on bidouille chaque case en les sélectionnant sous la forme [A](Y,X). Mais attention à sa taille qui doit être définie à l'avance.

A chaque fois que tu crées un aléatoire, rempli la case de la matrice qui correspond à ces coordonnées.
Lorsque ton personnage quitte une case, verrifie si la case est remplie pour savoir s'il y a un arbre. Nous pouvons même utiliser plusieurs valeurs selon le type d'arbre que tu croises.

Au début :
Code
EffVar [A]
{8,16}->dim([A]   // la matrice est remplie de 0. Tu devras la remplir de 1.

Lors de la création de la forêt :
Code
entAléat(1,16)->X
entAléat(1,7)->Y
1+B->[A](Y,X)  // 1 pour un arbre normal et 2 pour la toundra
3->[A](Y+1,X)  // pour le tronc des arbres

Lors de tes déplacements :
Code
[A](Y,X)   // stocke la valeur de la case dans Answer (ça évite de l'écrire à chaque fois)
If Ans=1:Output(Y,X,"O
If Ans=2:Output(Y,X,"Y
If Ans=3:Output(Y,X,"I


Des fonctions sont valides à la fois pour les listes et les matrices. Regarde dans les menus idouanes(adéquats).
Notamment : Remplir(0,[A])

=====

J'espère que tu as compris tout ce que nous t'avons montré jusqu'à présent.
Notamment le For qui est incontournable et le coup des labels du menu.
Les restituer ailleurs serait un beau cadeau à me faire. bigmouth.gif

Edit : j'ai ajoûté des indications sur le lieu d'application de ces fragments de code.

----------------------
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 
 
Rowks
Invité
Posté le : Dim 08 Mai 2011, 16:15   Citer 

Merci Camille !
J'ai réussi à le faire

Ton voisin d'classe ^^'

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
cam!
Invité
Posté le : Dim 15 Mai 2011, 20:17   Citer 

Je suis en train de booser dessus! Je m'excuses, mais durant tout ce temps, et oui, j'etais bombe de
Travail! ...tient d'ailleurs je le suis toujours! ^^/
Je vais essayer d'en mettre une prochainement, en utilisant les matrices.
1 ou 2 jours d'attentes.

  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