Since this is in the for begginers I will assume you are pretty new to programming, so don't get offended if I say something that may sound obvious ok?
I believe people told you to use a grid in order to implement your game logic, not the movement.
If you have the center of a piece and the board is proportional all you have to do to move a piece is to add twice the distance between the pieces to its front or side (mostly x and z axis). If you just want to move the piece instantly you will only need to change a single coordinate (up - mostly y axis - and one of the other two axis is not changed, as you can't move in a diagonal).
The problem is that not every move is legal and here is where a 2d grid (which is a basically a matrix) takes place. You can use it to map the places of your board that exists and the ones that are filled with a piece, so you can easily check if a movement is legal or not. For instance, even if you use only a simple integer matrix, you could have:
0 1 2 3 4 5 6 <- x
0 [-1, -1, 1, 1, 1, -1, -1]
1 [-1, -1, 1, 1, 1, -1, -1]
2 [ 1, 1, 1, 1, 1, 1, 1]
3 [ 1, 1, 1, 0, 1, 1, 1]
4 [ 1, 1, 1, 1, 1, 1, 1]
5 [-1, -1, 1, 1, 1, -1, -1]
6 [-1, -1, 1, 1, 1, -1, -1]
/ \
|
y
Where:
1 - Means that a piece exists.
-1 - Means the cell doesn't exist.
0 - Means an empty cell.
Having this, let's say the player want to move the from (0, 3) to (0, 1); you can check that (0, 1) doesn't exists, so it is an illegal movement.
But if the player wants to move from (1,3) to (3, 3), you can check that (3, 3) exists and is empty (because it is zero) and (2, 3) exists and has a piece (because it is 1) so the movement is legal. You update the matrix, move the piece, check if the game is not over and let the game continue.
Hope this clarifies things a little.
PS: You can also use the grid to render the pieces every frame (if there is a a piece, you calculate the coords by the indexes of the grid and render a piece in the position). This will work, but you won't be able to annimate the movements.