Optical Illusion

 


Нашел один форум, на котором владельцы PicoCalc публикуют программы на Basic.Потратил несколько часов, пытаясь перевести программу на PureBasic, и бесполезно .Вечером решил повторить картинку и переписал код по-другому:

If OpenWindow(0, 0, 0, 640, 480, "Optical illusion", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 0, 0, 640, 480)
  
  If StartDrawing(CanvasOutput(0))
    For y=1 To 479
      For x=0 To 639
        If (x!y)&32; =0
          co=$FFFFFF
        Else
          co=0
        EndIf
        
        If y&1
          If (x+1)%4
            co=co!$FFFFFF
          EndIf
        Else
          If (x-1)%4
            co=co!$FFFFFF
          EndIf
          
        EndIf
        Box(x,y,1,1,co)
      Next x
    Next y
    
    For y=1 To 14
For x=1 To 19
  ;c=(x+y+(x>5)+(x>14)+(y>4)+(y>11)+1)Mod 2
  c=x+y+1
  If x>5:c+1:EndIf
  If x>14:c+1:EndIf
  If y>4:c+1:EndIf
  If y>11:c+1:EndIf
  c=(c&1)*$FFFFFF
  For i=0 To 3
 LineXY(32*x-8,32*y-2+i,32*x+8,32*y-2+i,c)
 LineXY(32*x-2+i,32*y-8,32*x-2+i,32*y+8,c)
 Next i
Next
Next
    StopDrawing()
  EndIf
  Repeat
    Event = WaitWindowEvent()
    
  Until Event = #PB_Event_CloseWindow
EndIf


Комментарии