1- No hay una función principal, así que el código final se ve un poco desorganizado, si quedara dentro de una función principal podría tener un poco más de orden.
2- Además de la función principal, posiblemente podrías tener más funciones de ayuda, por ejemplo las opciones de los eventos de MOUSEMOTION y MOUSEBUTTONDOWN podría haber una función por cada uno.
3- También podrías haber incluido el uso de objetos y en juegos es muy común su aplicación por ejemplo cuando menos habría dos clases Tablero y Ficha (de éste último habría dos conjuntos de fichas, uno para cada jugador).