So the Quad objects need an instance variable for every Quad? It works but I could see how it would be a bit time consuming to set up.
You could just use one text instance variable and store a comma seperated list of the values.
So for instance the top left Quad would have a "list" value of "2,2,2,2,2,0,1,1,1,1". Then events 12 to 21 could be replaced by one action added to event 11:
player2| set direction to int(tokenat(Quad.list, player1.ClosestQuadName, ","))