That is what mine does. Every time it encounters a zero, it adds the coordinates as a decimal x.y into a list. At least it's supposed to do that. Here is what I got:
:If Q+iPart(L2(Z))>0 and Q+iPart(L2(Z))≤H and R+100fPart(L2(Z))>0 and R+100fPart(L2(Z))≤W and not(pxl-Test(6(iPart(L2(Z))+Q)-2,4(100fPart(L2(Z))+R)-2)+pxl-Test(6(iPart(L2(Z))+Q)-4,4(100fPart(L2(Z))+R)-2
I want it to do this: a spread out effect (but not as fast)
I think the main problem was even though it stores new coordinates, the old ones still exist which means it runs through them again and again, and I can't overwrite because of the Repeat condition. Also, it fails sometimes. Is there a way to fix this?
[B] is the matrix with mines as anything plus one half and numbers representing how many mines are around it. It has different sizes with H as max height and W as max width. M is the number of non mine squares to hit. I am thinking making a code for such feat is complicated for BASIC and probably shouldn't be attempted, but it would be something along a new frontier.