I had very unexpected results from a fairly simple script. I have a long string of 1s and 0s in a variable representing the states of cells in a cellular automata simulation. There can be more than ten thousand cells. To detect when the CA is no longer changing, I save this string each cycle, then compare it with the string representing the next state:

    [ code to compute next state ]
    if nextState = curState then StopCA
    put nextState into curState
    showCA

Sometimes this worked, but many times the CA would stop before it should have; other times it would not stop when it should. I checked the code carefully, looked at the variables in the debugger, and looked in the docs for clues. Finally, I wondered if there could be a difference between numeric and string comparison, so I tried changing the comparison above to:

if "z"&nextState = "z"&curState then StopCA

Surprisingly (to me) this fixed the problem. I've already digressed too long on this so can't look into it any more right now. Just wanted to put this tidbit in our archives, and see if anyone who knows more than I is not surprised by this, or can correct me if my analysis is wrong...

Jim Lyons

PS: Revolution is so cool, so fast, so powerful, to be able to do this kind of stuff!

_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to