Volhout Guru
 Joined: 05/03/2018 Location: NetherlandsPosts: 5022 |
Posted: 11:58am 08 Mar 2021 |
|
|
|
Hi Geoff,
I am not sure if your bug fixing data lost also includes CMM1 bugs?
One of the things I ran into in my last effort for the 10 liner challenge is that the NEXT and LOOP commands must be at the beginning of a new line, where at the associated FOR and DO can be in the middle of a multi-statement line.
Not sure if you ever plan to release a new version of MMBasic for the maximite and color maximite, this may be addressed.
Example code: Try moving the LOOP to the end of the previous line. Similar for the NEXT j,i.
s=13:Dim f(s,s),t(s,s):Do:Mode 4:z=9:Read x,y:For i=1To s:Read a$:l=Val("&h"+a$) For j=1To s:w=2^((j-1)*2):m=3*w:f(i,j)=(l And m)/w:If f(i,j)<2Then t(i,j)=f(i,j) Next j,i:Print @(99,10)"TLS":f(x,y)=4:Do:If a$="r"Then:Restore:Exit Do:EndIf:d=1 For i=1To s:For j=1To s:k=f(i,j):If k=1Then:d=0:EndIf:o=120+z*(i-6):p=100+z*(j-6) Line(o,p)-(o+z-2,p+z-2),3And k,BF:If k=4Then Circle(o+z/2-1,p+z/2-1),3,6,,F:EndIf Next j,i:If d=1Then:Exit Do:EndIf:Do:a$=Inkey$:Loop While a$="":n=3And Asc(a$) If n<2Then:b=0:c=n*2-1:Else:b=n*2-5:c=0:EndIf:e=x+b:g=y+c:If f(e,g)=2Then If f(e+b,g+c)=<1Then:f(e,g)=0+t(e,g):f(e+b,g+c)=2:Else:b=0:c=0:EndIf ElseIf f(e,g)=3Then:b=0:c=0:EndIf:f(x,y)=t(x,y):x=x+b:y=y+c:f(x,y)=4 Loop:Loop:Data 2,2,FFFF,D5F3,CBC3,C023,C3CF,EC0F,C0FF,FFFF,0,0,0,0,0
Edited 2021-03-08 21:59 by Volhout |