порт с PowerBasic
Код:
If OpenWindow(0, 0, 0, 640, 400, "stars", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) CanvasGadget(0, 0, 0, 640, 400) Dim pal.l(63) For m=1 To 21 pal(m)=RGB(m*12,m*12,m*8) pal(m+21)=RGB(252,252,(m+21)*8) pal(m+31)=$FFFFFF Next m zz=128 Dim zx.f(320) Dim zy.f(320) For m=0 To 319 zx(m)=160+100*Sin(m/160*#PI) zy(m)=100+100*Cos(m/160*#PI) Next m RandomSeed(12345) dn=300 Dim x.l(dn) Dim y.l(dn) Dim z.l(dn) Dim aa.l(dn) Dim ab.l(dn) For m=1 To dn x(m)=Random(320) y(m)=Random(20)+110 z(m)=Random(128) aa(m)=0 ab(m)=0 Next m v=0 Repeat Event = WindowEvent() Sleep_(10) If StartDrawing(CanvasOutput(0)) Box(0,0,640,480,0) For m=1 To dn z(m)+1 If z(m)>127 x(m)=Random(280)+20 y(m)=Sin(v/7)*7+Sin((x(m)-v)/10)*7+120 z(m)=0 EndIf a.l=(zx(v)*z(m)-zz*x(m))/(z(m)-zz) b.l=(zy(v)*z(m)-zz*y(m))/(z(m)-zz) If a>-1 And a<320 And b>-1 And b<200 Box(a*2,b*2,2,2,pal(Int(z(m)/2))) aa(m)=a ab(m)=b EndIf Next m v=(v+1)%320 StopDrawing() EndIf If GetAsyncKeyState_(#VK_ESCAPE)&$8000 Break EndIf Until Event = #PB_Event_CloseWindow EndIf