ну я просто рисовал линии вертиклаьыне и горизонтальные ) завдавал высоту и ширину виджета
вот так
final _size = MediaQuery.of(context).size;
final size = min(_size.height, _size.width) - 40;
final sizeCell = size / 10;
то есть size это ширина была поля с отступом по 20 пикселей с узкой стороны
sizeCell это делили на сколько клеток разбито
а вот так рисовал поле
https://pastebin.com/g8vmZc4bвыводить так
Container(
width: size,
height: size,
child: CustomPaint(
painter: BoardCanvas(),
),
),
),