I'm a beginner to game development and am having frequent trouble with designing my classes and structuring my code. I feel I don't know when to separate logic from a class into a new class.
For example, I'm making a game with a grid. I made a grid class that has properties like number of rows, cols, etc. There is a function to be able to visualize the grid, where it generates the cells, edges, and corners. There is also a handful of functions for manipulating grid data for each [row][col] location.
My questions are: Should the visualization code be a part of the grid class? Should the manipulation of data be a part of the grid class? I just don't know when the right time is to separate things or when I am creating too many layers. Are visualization and data unique enough to warrant separating them from the main class?