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
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 30 Avr 2011, 8:34
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.
cam! Invité
Posté le : Sam 30 Avr 2011, 10:28
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
cam! Invité
Posté le : Sam 30 Avr 2011, 10:41
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
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 01 Mai 2011, 1:41
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)
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 01 Mai 2011, 14:06
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)
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 ??
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 02 Mai 2011, 21:58
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.
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)
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.