
Un petit sujet de réflexion:

J'ai trouvé un petit programme écrit en javascript (en fait en JamajicSript).Je me suis dit vu la longueur du programme qu'il serait très facile de le transformer en Pure Basic. En fait je me heurte à un petit problème de tableau. Je ne vois pas comment passer un tableau (myattractors) dans les paramètres d'une procedure. je m'explique peut être mal et un bon exemple vaut mieu qu'un long discours.
Merci d'avance pour vos explications.
André.
[/code]
// listing Jamajic....
Var x=0;
Var y=0;
Function Sierpinski(attr,loops)
{
x=attr[0,0];
y=attr[0,1];
While(loops--)
{
attr_choisi=Random(3);
x=(attr[attr_choisi,0]+x)/2;
y=(attr[attr_choisi,1]+y)/2;
SetPixel(x,y);
}
}
Function SetArrayPoints(attr,x1,y1,x2,y2,x3,y3)
{
attr[0,0]=x1;
attr[1,0]=x2;
attr[2,0]=x3;
attr[0,1]=y1;
attr[1,1]=y2;
attr[2,1]=y3;
}
myattractors[0,0]=0;
SetArrayPoints(myattractors,0,480,320,0,640,480);
Sierpinski(myattractors,100000);
While(TRUE);
Le mien en Pure....
Code : Tout sélectionner
; La convertion en Pure Basic ?
;
;
Dim attr.b(2,2)
Dim myattractors.b(2,2)
If OpenWindow(0, 0, 0, 640, 480, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Sierpinski") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
Procedure Sierpinski(attr,loops)
x=attr(0,0)
y=attr(0,1)
StartDrawing(WindowOutput())
While loops<>0
attr_choisi=Random(2)
x=(attr(attr_choisi,0)+x)/2
y=(attr(attr_choisi,1)+y)/2
Plot(x,y,RGB(0,0,0))
loops=loops-1
Wend
StopDrawing()
EndProcedure
Procedure Setarraypoints(attr,x1,y1,x2,y2,x3,y3)
attr(0,0)=x1
attr(1,0)=x2
attr(2,0)=x3
attr(0,1)=y1
attr(1,1)=y2
attr(2,1)=y3
EndProcedure
Setarraypoints(myattractors(),0,480,320,0,640,480)
Sierpinski(myattractors(),100000)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow
End
; ExecutableFormat=Windows
; CursorPosition=4
; FirstLine=1
; EOF