Код:
Procedure colr(n)
  If n&8
    cv=255
  Else
    cv=127
  EndIf
  If n&1
    rr=cv
  Else
    rr=0
  EndIf
  If n&2
    bb=cv
  Else
    bb=0
  EndIf
  If n&4
    gg=cv
  Else
    gg=0
  EndIf
  ProcedureReturn RGB(rr,gg,bb)
EndProcedure

Global x.f=0
Global y.f=0
Global n

Procedure drawh()
  StartDrawing(CanvasOutput(0)) 
  Box(0,0,640,480,0)
  For K=0 To 100000
    t.f=x
    x=y-Sign(x)*Sqr(Abs(4*x-60))
    y=1-t
    n+1
    Box(Int(x*2)+320,Int(y*2)+240,1,1,colr(n&15))
  Next K
  StopDrawing()
  x=x/10
  y=y/10
  ;SetWindowTitle(0,"hopalong,x="+Str(x)+",y="+Str(y))
EndProcedure
If OpenWindow(0,0,0,640,480,"Hopalong",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
  CanvasGadget(0,0,0,640,480)
  drawh()
  Repeat 
    ev=WaitWindowEvent()
    If ev=#PB_Event_Gadget And EventType()=#PB_EventType_LeftClick
      drawh()
    EndIf
    If GetAsyncKeyState_(#VK_ESCAPE)&32768
      Break
    EndIf
  Until ev=#PB_Event_CloseWindow 
EndIf

https://forumupload.ru/uploads/0009/ae/28/618/t994458.png