45 lines
768 B
Plaintext
45 lines
768 B
Plaintext
' Munching squares - smallbasic - 27/07/2018
|
|
size=256
|
|
GraphicsWindow.Width=size
|
|
GraphicsWindow.Height=size
|
|
For i=0 To size-1
|
|
For j=0 To size-1
|
|
BitXor() 'color=i Xor j
|
|
GraphicsWindow.SetPixel(i,j,GraphicsWindow.GetColorFromRGB(0,color,color))
|
|
EndFor
|
|
EndFor
|
|
|
|
Sub BitXor '(i,j)->color
|
|
n=i
|
|
Int2Bit()
|
|
ib=ret
|
|
n=j
|
|
Int2Bit()
|
|
jb=ret
|
|
color=0
|
|
For k=1 to 8
|
|
ki=Text.GetSubText(ib,k,1)
|
|
kj=Text.GetSubText(jb,k,1)
|
|
If ki="1" Or kj="1" Then
|
|
kk="1"
|
|
Else
|
|
kk="0"
|
|
EndIf
|
|
If ki="1" And kj="1" Then
|
|
kk="0"
|
|
EndIf
|
|
color=2*color+kk
|
|
EndFor
|
|
EndSub
|
|
|
|
Sub Int2Bit 'n->ret
|
|
x=n
|
|
ret=""
|
|
For k=1 to 8
|
|
t=Math.Floor(x/2)
|
|
r=Math.Remainder(x,2)
|
|
ret=Text.Append(r,ret)
|
|
x=t
|
|
EndFor
|
|
EndSub
|