I think the problem, in my case, is that I want the array creation to be more flexible.
For example, my program currently uses a script to randomly generate the game board. However, the array population function occurs in a different event sheet - the gameplay event sheet. This is because I want to be able to populate an array that represents the board state regardless of how the board was generated (whether through the random board generator or using a pre-created board state).
However, your approach for populating the array should still work I think. You set the xi and yi values when you populate the array, so I suppose for it's okay in my program to generate the board, populate array, and then set the squares to match certain array values.
I'll give it a shot using your array population method and let you know how it goes.