Bad Return.
Adding function to get a New List Copy from BoardGame but with the new position
will be used to Check If they can do play the shoot or if it's making a checkmate/checkking somewhere
Enum Used in Intern essentialy.
Few Correction on your code, temporary, this file will be replaced by the one on your branch before the merge
Modification on Abstract Functor
Should move is now no more abstract (still has to code it)
Pawn: Rewrite becaise didn't check if the pawn goes diagonal.
Tower: add an else to return SameColorCaseOCCUPIED instead of FAIL_UNAUTH...
King: Same Than Tower
Crazy: Adding some commentary and same than Tower and remove ShouldMove(no more abstract)
Cavalery: Rewrwite complete. Is working well no. with commentary
Queen: Same Than tower
Remove useless import and function isEatSomethingTower(old idea)
Rerwrite Loop DoMovePawns to return a Pair<eMoveState, eGameState>
eGameState and eMoveState is essentialy for intern ChessGame, but GUI could use at the return to update the data
or could call some new function in ChessGame eachtime to update Data.
ChessGame: adding private attribute. Now Get the gestion of wich turn it is.
	with the function GetTurn (return Color of Player)
	Function isCheckMat createad return eColor.none if no CheckMat
	Have to add isCheckKing

Position: nothing
Modifiate for a State
new Function isCheckKing
Adding function isDraw
isCheckKing
isCheckMat
adding function isCheckMat isCheckKing isDraw