Quote: "if ( (a = 1 or b = 1) not c = 1 ) and i = 1"
There are a few problems with this. The first is that there should be an 'or' or 'and' before the 'not'. I'm surprised that it parsed.
Second, AppGameKit Tier1 has a hard time parsing extended logic in if statements. It doesn't seem to group the way you would expect. Every discrete piece should be put in parenthesis to make sure it gets grouped the way you want.
By simply changing 'not c=1' to 'and (c<>1)', the logic was applied.
Quote: "if (((a=1) or (b=1)) and not (c=1)) and i=1"
This caused a compile error 'Both operands are required for non-uniary operations'. Better to use 'c<>1'.
I've had problems with Tier1 parsing if statements with multiple bits of logic. Quite annoying.
Quote: "I suspect it's assigning 1 to i."
Annoyingly for those of us familiar with other languages, that is not the case. Basic is one of those languages that uses '=' in both assignment and for equality tests. I hate this myself, it is not clean programming syntax. But it is how Basic works.
Cheers,
Ancient Lady