GraBLOX game logic

I do not quite understand the graBLOX game logic. The sorts of issues I do not quite understand are the following:

1) In precisely which order do things happen, when multiple things happen?

2) Can two blocks occupy the same square? What happens if this occurs?

Here is my guess to the answer of the first question, which I have obtained by messing around with levels 1-12, 1-15, 2-23, 3-11 and 3-21.

a) “Dizzy” blocks (the multicoloured/pink blocks) will only trigger once per move. This is a really good idea, because otherwise, if one Dizzy grabs another one, the second would re-activate the first, and one would get caught in an infinite loop. An alternative solution would be to let Dizzy blocks not pull in the direction they’ve been activated from, but you can see in the animations in the game that this is *not* the solution that MobilityWare went for. Furthermore, in level 1-12, after 1.g6 2.e10 3.d5 you can see that the Dizzy on d6 does not get triggered by the Dizzy on d7 even though the d7 Dizzy grabs the d6 Dizzy.

b) Things seem to happen in the following order:

A) Player clicks on a block. B) Block does its usual animation. C) All Dizzys that have been “hit” are triggered. D) Any teardrops that are no longer supported will fall. E) All “clumps” of three or more blocks will disappear. F) If any teardrops hit any Dizzys, then these Dizzys are then triggered and we go back to step C).

The second question is more interesting. It can definitely happen that two blocks can occupy the same square: for example in level 4-1 after 1.b6 2.c6 3.b6 one ends up with a Rick and an Ike on c6 (note: for the official names of the blocks, see here).

But what would happen if two blocks ended up on the same square without immediately being deleted? Actually this can happen! In level 4-10 try playing 1.a6 2.d6 3.f6. We end up with a Rocky and an Ike both occupying square a6. Perhaps slightly surprising -- but in fact the game seems to cope with this situation in a logical way. The only thing one can't do, that one might have expected to be able to do, is rotate the Ike on a6.

Here is another position, this time theoretical (i.e. it doesn't seem to occur in the 150 levels in GraBLOX v2.2) where this might happen:

Rick: a3, c3, c1 Downward-falling teardrop: a4 Rightward-falling teardrop: d1

What would happen if one played 1.c3 in this position? If my understanding of the game logic is correct, the two teardrops would both want to fall onto square a1, but then would have no reason to disappear. My guess as to what would happen in practice would be that there will be a thread (in the computer science sense) for each block and one might end up with a race condition, and the outcome may be different if one tried it more than once. For an explicit example of what I believe is a race condition in graBLOX, see here.