Final School Project - Emulating Time / Clock via a working chess game

Hello @Pot4t0 !

Sound interesting let me help you. First of all lest split the responsibilities.
I would like to start with:

Piece (Actor):
Responsabilities

  • Know his current location
  • Know how its move
  • I am in game?

Chessboard (Actor)
Responsabilities

  • Knows the size of the board
  • Has a logic array of two dimensions of Sqaure Data (See below). This will help to know if a piece is in a location or not.
  • Know the “id” position of each chess piece
  • Know if a Square is occuppied or not.

Square Data (Struct):

  • Piece* > Pointer to know which piece is ocupping this
  • Location: X, Y, Z > To know the location of the world for this square

ChessManager (Actor or Info)

  • Something to deside the next move. Can be simple or complex if you want to add meaning to the plays.

The flow will be the next:
1 - ChessManager decide the piece and the Move to do. Searching the availables pieces moves.
2 - Chesboard validates if the movement is valid (if there is other piece blocking the current piece )
3 - If everything is valid you move the piece. Getting the positions and updating the chesboard data.