maxX = 300 : maxY= 150
Dim c#(maxX ,maxY)
Graphics 800,600,32,2
SetBuffer BackBuffer()
c(90,10)= 20
While Not KeyHit(1)
Cls
mx = MouseX() : my=MouseY() : z= Abs(MouseZ () )+12
If KeyHit(2) Then q= Not q
If MouseDown(1) Then md=1 Else md=0
For y= 1 To maxY
For x=1 To maxX
If x<maxX And x>0 And y<maxY And y>0
If Int( ((mx - x)^2 + (my - y)^2)^.5 )<= z Then
If md=1
If q=0 Then c(x,y)= c(x,y)+1
If q=1 Then c(x,y)= c(x,y)-2
EndIf
If c(x,y)> 255 Then c(x,y)=255
Color 222,222,222
Plot x,y
EndIf
EndIf
Next
Next
Color 222,222,222
Rect 0,0,maxX ,maxY,0
;If md=0
For y= 1 To maxY
For x=1 To maxX
co = 10+c(x,y)
If co>255 Then co =255
Color co,co,co
If co<=0 Then co =0 :Color 0,0,255
;Plot 200+x-y,200+y-c(x,y)
;Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y+4-c(x,y)
;For z=1 To 20
; If Int( ((mx - x)^2 + (my - y)^2)^.5 )<= z And md=1
If x<maxX And x>0 And y<maxY And y>0
If c(x,y) > c(x-1,y-1) Then c(x,y)=( c(x,y)+ c(x-1,y-1))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x-1,y-1)
If c(x,y) > c(x-1,y+1) Then c(x,y)=( c(x,y)+ c(x-1,y+1))/2 : Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x-1,y+1)
If c(x,y) > c(x+1,y-1) Then c(x,y)=( c(x,y)+c(x+1,y-1))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y- c(x+1,y-1)
If c(x,y) > c(x+1,y+1) Then c(x,y)=( c(x,y) + c(x+1,y+1))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x+1,y+1)
If c(x,y) > c(x,y-1) Then c(x,y)=( c(x,y)+c(x,y-1))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x,y-1)
If c(x,y) > c(x,y+1) Then c(x,y)=( c(x,y)+ c(x,y+1))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x,y+1)
If c(x,y) > c(x-1,y) Then c(x,y)=( c(x,y)+ c(x-1,y))/2 :Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y-c(x-1,y)
If c(x,y) > c(x+1,y) Then c(x,y)=( c(x,y)+c(x+1,y))/2 : Line 200+x-y,200+y-c(x,y) , 200+x-y,200+y- c(x+1,y)
; EndIf
EndIf
Next
Next
Color 222,222,222
Text 300,20,"Q "+q
Flip
Wend
End