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
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

Комментарии
Отправить комментарий