papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Une forêt (pas toute la forêt) pour faire plaisir à Minibug Jeu 10 Fév 2022 - 2:14 | |
| Sur un autre post - Minibug a écrit:
- Papydall est parti pour nous recréer toute la foret !!
Pour faire plaisir à Minibug, voici un code pour dessiner une forêt et non toute la forêt! - Code:
-
rem ============================================================================ rem rem FORET.BAS PAR PAPYDALL rem rem ============================================================================ init() Soleil(xsun%,ysun%,rsun%) Foret() end rem ============================================================================ SUB init() dim sang, sang1(20),xx(20),yy(20),compteur%,xpos%,ypos%,xsun%,ysun%,rsun% dim xp,yp,xp1,yp1,x,y,x1,y1,ran1,ran2,s2,zx,zy dim a$,a0$,a1$,b$,st,gen%,k%,s,ang,ang1,an,j%,cl,i%,titre$ width 0,1000 : height 0, 700 picture 10 : full_space 10 : 2d_target_is 10 : color 10,10,100,150 titre$ = " *** Tracer en cours ... <ESC> pour arrêter ..." ypos% = 500 : xsun% = int(rnd(800)+100) : ysun% = 50 : rsun% = 20 degrees END_SUB rem ============================================================================ SUB Soleil(x%,y%,r%) 2d_circle x%,y%,r% : 2d_flood x%,y%,255,255,0 END_SUB rem ============================================================================ SUB Foret() dim_local cr%,cv%,cb%, exit% repeat cr% = int(rnd(160)) : cv% = int(rnd(140)) : cb% = int(rnd(255)) xpos% = int(rnd(800) +100) B$ = "" : A$ = "" : A0$ = "" : A1$ = "" st = 0 : gen% = mod(compteur%,13)+1 : compteur% = compteur% + 1 caption 0,"FORET Par PAPYDALL : Nombre de plantations : " + str$(compteur%) + string$(5," ") + titre$ select gen% case 1 k% = 6 : s = 1.5 : ang1 = int(rnd(80)+8) A$ = "0" : A1$ = "11" : A0$ = "1##10!+0!-0" case 2 k% = 5 : s = 3 : ang1 = int(rnd(20)+16) A$ = "1" : A1$ = "11-#-1+0+0!+#+1-0-0!" : A0$ = "0" case 3 k% = 6 : s = 1.5 : ang1 = int(rnd(45)+8 ) A$ = "0" : A1$ = "11" : A0$ = "1#+0!1#-0!0" case 4 k% = 5 : s = 3 : ang1 = int(rnd(10)+10) A$ = "1" : A1$ = "1#+0!#=0!1#+1+-0!#-1-+0!" : A0$ = "0-0++0" case 5 k% = 5 : s = 3 : ang1 = int(rnd(16)+16) A$ = "1" : A1$ = "11-#-1+0+0!+#+1-0-0!" : A0$ = "#0-0++0!" case 6 k% = 4 : s = 2.5 : ang1 = int(rnd(10)+10) A$ = "1" : A1$ = "1#+10!1#-10!1" : A0$ = "#0-0++0!" case 7 k% = 4 : s = 1.75 : ang1 = int(rnd(30)+10) A$ = "1" : A1$ = "1#+1-10!1#-1+10!10" : A0$ = "#0-0++0!" case 8 k% = 4 : s = 3 : ang1 = int(rnd(15)+10) A$ = "1" : A1$ = "11#+1-1+10!#-1+1-10!" : A0$ = "#0-0++0!" case 9 k% = 4 : s = 3.5 : ang1 = 10 A$ = "1" : A1$ = "11#+1+1-#0-0++0!!0#-1-1+#0-0++0!!" : A0$ = "#0-0++0!" case 10 k% = 4 : s = 3.6 : ang1 = int(rnd(5)+10) A$ = "#+1-1!#-1+1!" : A1$ = "1#-1+0!1#+1-0!0" : A0$ = "#0-0++0!" case 11 k% = 3 : s = 2.75 : ang1 = int(rnd(3)+8 ) A$ = "1" : A1$ = "11#+10-10+10-10!1#-10+10-10+10!0" : A0$ = "0" case 12 k% = 3 : s = 4 : ang1 = int(rnd(60)+20) A$ = "1" : A1$ = "1#-10-10-10!1#+10+10+10!1#10!" : A0$ = "0" case 13 k% = 4 : s = 2 : ang1 = int(rnd(8 )+10) A$ = "0" : A1$ = "111" : A0$ = "11#+0!#++0!#+++0!#-0!#--0!#---0!0" end_select
for j% = 1 to k% cl = len(A$) for i% = 1 to cl if mid$(A$,i%,1) = "1" B$ = B$ + A1$ else if mid$(A$,i%,1)="0" B$ = B$ + A0$ else B$ = B$ + mid$(A$,i%,1) end_if end_if next i% A$ = B$ : B$ = "" ang = 360/ang1 : x = 0 : y = 0 : an = 0 : cl = len(A$) for i% = 1 to cl if mid$(A$,i%,1) = "1" ran1 = rnd(1) : ran2 = rnd(1) : s2 = s + 0.5 *(ran1-ran2)* s ran1 = rnd(1) : ran2 = rnd(1) : an = an + 5.0 *(ran1-ran2) sang = an : x1 = s2 * sin(an)+ x : y1 = s2 * cos(an)+ y xp = 2 * x + xpos% : yp = ypos% - 2 * y xp1 = 2 * x1 + xpos% : yp1 = ypos% - 2 * y1 2d_pen_color 0,90+cv%,0 : 2d_line xp,yp , xp1,yp1 x = x1 : y = y1 else if mid$(A$,i%,1) = "0" zx = sin(an): zy = cos(an) x1 = zx * s + x : y1 = zy * s + y xp = 2 * x + xpos% : yp = ypos% - 2 * y xp1 = 2 * x1 + xpos% : yp1 = ypos% - 2 * y1 2d_pen_color 90+cr%,65 + cv%,cb% : 2d_line xp,yp , xp1,yp1 x1 = 0.25 * zx * s + x : y1 = 0.25 * zy * s + y xp1 = 2 * x1 + xpos% : yp1 = ypos% - 2 * y1 2d_pen_color 255,0,0 : 2d_line xp,yp , xp1,yp1 : display else if mid$(A$,i%,1) = "-" ran1 = rnd(1) : ran2 = rnd(1) an = an - ang - 10 *(ran1-ran2) : sang = an else if mid$(A$,i%,1) = "+" ran1 = rnd(1) : ran2 = rnd(1) an = an + ang + 10 *(ran1-ran2) : sang=an else if mid$(A$,i%,1) = "#" st = st + 1 : sang1(st) = sang xx(st) = x : yy(st) = y else if mid$(A$,i%,1) = "!" x = xx(st) : y = yy(st) an = sang1(st) : sang = an : st = st-1 end_if end_if end_if end_if end_if end_if if scancode = 27 then exit% = 1: exit_for next i% if exit% = 1 then exit_for next j% until exit% = 1 END_SUB rem ============================================================================
- Spoiler:
| |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Une forêt (pas toute la forêt) pour faire plaisir à Minibug Jeu 10 Fév 2022 - 9:30 | |
| | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Une forêt (pas toute la forêt) pour faire plaisir à Minibug Ven 11 Fév 2022 - 16:30 | |
| Aïe, aïe, aïe, les arbustes de Papydall poussent, poussent et poussent... J'ai dû passer plusieurs fois la tondeuse ! Bravo pour ce nouveau Papydall écologique ! | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Une forêt (pas toute la forêt) pour faire plaisir à Minibug Ven 11 Fév 2022 - 17:49 | |
| Merci Papydall pour ces partages feuillus ! | |
|
Contenu sponsorisé
| Sujet: Re: Une forêt (pas toute la forêt) pour faire plaisir à Minibug | |
| |
|