5.21: Converting from Pixel Coordinates to Board Coordinates
- Page ID
def getSpotClicked(board, x, y): # from the x & y pixel coordinates, get the x & y board coordinates for tileX in range(len(board)): for tileY in range(len(board)): left, top = getLeftTopOfTile(tileX, tileY) tileRect = pygame.Rect(left, top, TILESIZE, TILESIZE) if tileRect.collidepoint(x, y): return (tileX, tileY) return (None, None)
getSpotClicked() function does the opposite of
getLeftTopOfTile() and converts from pixel coordinates to board coordinates. The nested loops on lines 3  and 4  go through every possible XY board coordinate, and if the pixel coordinates that were passed in are within that space on the board, it returns those board coordinates. Since all of the tiles have a width and height that is set in the
TILESIZE constant, we can create a Rect object that represents the space on the board by getting the pixel coordinates of the top left corner of the board space, and then use the
collidepoint() Rect method to see if the pixel coordinates are inside that Rect object’s area.
If the pixel coordinates that were passed in were not over any board space, then the value
(None, None) is returned.