A Fuze update will probably need to break my code
I was under the impression that Fuze assigned by value, not by reference. And I have build under this assumption.
Now I discovered by reading other people's code that this behavior is not consistent. For example in Jump a Face by Gothon, there is the following function that works:
Function SwapEle(Arr, I, J) // Swap array elements var Tmp = Arr[I] Arr[i] = Arr[J] Arr[J] = Tmp Return VOID
This implementation fully relies on the fact that SwapEle gets the array by reference, so that any changes made to it, will apply to all variables pointing to the same reference.
Unfortunately with my game
2048I initially encountered different behavior, so I've build on that. To illustrate the difference:
function println(v) print(v, "\n") return void nested = [[1,2,3]] println(nested) //[ 1, 2, 3 ] SwapEle(nested, 1, 2) println(nested) //[ 1, 2, 3 ] ref = nested nested = 4 println(ref) //[ 1, 2, 3 ] printlin(nested) //[ 1, 4, 3 ] ref2 = ref ref = 5 println(ref) //[ 1, 2, 4 ] println(ref2) //[ 1, 2, 4 ]
I know there is awareness of this bug, but I just wanted to give the feedback that my game
2048(at least in it's current implementation) will break when this gets fixed in an update. And I just wanted to let you know that I'm 100% fine with that, so I hope that should not be concern with any future update.