Track the tile color for moving tiles
Generate grid from lists
Walk columns top to bottom
Have the AI consider the result of the blocks having fallen all the way down
Select closest cursor position to current if there's a tie