Как обработать перемещение курсора на другую клетку в клетчатом поле?

уважаемые знатоки.

Я рисую клетчатое поле в Pygame, клетки которого должны изменяться при взаимодействии отдельных его квадратиков с курсором мыши. Само поле при запуске кода изначально окрашивается в красный цвет, который клетки поля меняют на желтый как только я наведу на них курсором мыши. Проще говоря, "подсвечивают" отдельную клетку. Но мне также хотелось бы, чтобы как только я смещаю курсор на любую другую клетку, та, на которой я только что был, уже окрашенная в желтый, вновь возвращалась к исходному красному цвету. Изучая документацию мне удалось реализовать и окраску клетки по нажатию, и по движению, но во втором случае весь "путь" курсора остается желтым, а я до сих пор ломаю голову как решить мой вопрос

Это мой первый вопрос на сайте и я заранее извиняюсь за возможные ошибки в оформлении, как и был бы очень благодарен, если бы вы мне подсказали как, наконец, прописать эту головоломку :)

# ОБЫЧНЫЙ ЦВЕТ И ЦВЕТ ВЫБОРА КЛЕТКИ КУРСОРОМ
YELLOW = (204, 250, 35)
RED = (255, 0, 0)

# ШИРИНА И ВЫСОТА КЛЕТОК СЕТКИ
WIDTH = 80
HEIGHT = 80
# ГРАНИЦА МЕЖДУ КЛЕТКАМИ
MARGIN = 1

SG = True # Переменная цикла

# Create a 2 dimensional array. A two dimensional
# array is simply a list of lists.
grid = []
for row in range(10):
# Add an empty array that will hold each cell
# in this row
 grid.append([])
 for column in range(20):
  grid[row].append(0)  # Append a cell

# --------ИГРА НАЧИНАЕТСЯ-----------
while SG:

# ===ОБРАБОТКА ПЕРЕТАСКИВАНИЯ ИГРЫ И ВЫКЛЮЧЕНИЙ===
 for i in pygame.event.get():
  if i.type == pygame.QUIT:
   SG = False
  if i.type == pygame.MOUSEMOTION:

   pos = pygame.mouse.get_pos()
   # Change the x/y screen coordinates to grid coordinates
   column = pos[0] // (WIDTH)
   row = pos[1] // (HEIGHT)
   # Set that location to one
   grid[row][column] = 1
   print("Click ", pos, "Grid coordinates: ", row, column)

 # ОТРИСОВКА ПОЛЯ
 for row in range(8):
  for column in range(15):
   color = RED
   if grid[row][column] == 1:
    color = YELLOW

   x = column *(WIDTH) + (column + 1)
   y = row * (HEIGHT) + (row + 1)
   pygame.draw.rect(Wokno, color, (x, y, WIDTH, HEIGHT), 1)

Ответы (2 шт):

Автор решения: Эникейщик

Сохранять координаты последней измененной клетки и при изменении новой клетки возврщать старой клетке значение 0:

# Set that location to one
   grid[row][column] = 1
   grid[prev_row][prev_column] = 0
→ Ссылка
Автор решения: Wilports

Разобрался, решение оказалось куда изящнее:

while SG:

for i in pygame.event.get():
    if i.type == pygame.QUIT:
        SG = False
   
for row in range(8):
    for column in range(15):
        pos = pygame.mouse.get_pos()
        mouse_column = pos[0] // (WIDTH + 1)
        mouse_row = pos[1] // (HEIGHT + 1)

        color = RED
        if row == mouse_row and column == mouse_column:
            color = YELLOW
        
        x = column * WIDTH + (column + 1)
        y = row *  HEIGHT + (row + 1)
        pygame.draw.rect(screen, color, (x, y, WIDTH, HEIGHT), 1)

pygame.display.flip()
→ Ссылка