| 
					
				 | 
			
			
				@@ -32,10 +32,10 @@ std::vector<Move> ChessGame::getValidMoves(void) const 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void ChessGame::move(Move move) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     board.move(move); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (turn == Turn::BLACK) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (turn == BLACK_SIDE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         moveCount++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    turn = turn == Turn::WHITE ? Turn::BLACK : Turn::WHITE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    turn = turn == WHITE_SIDE ? BLACK_SIDE : WHITE_SIDE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -62,29 +62,29 @@ void ChessGame::loadFromFen(const std::string& fenString) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this->board.setBoard(board); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     this->enPassant = Index {enPassant}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (turn == "w"s) this->turn = Turn::WHITE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else if (turn == "b"s) this->turn = Turn::BLACK; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (turn == "w"s) this->turn = WHITE_SIDE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else if (turn == "b"s) this->turn = BLACK_SIDE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else throw runtime_error("invalid turn "s + turn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    canCastleQueenSideWhite = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    canCastleKingSideWhite = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    canCastleQueenSideBlack = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    canCastleKingSideBlack = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    canCastleQueenSide[WHITE_SIDE] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    canCastleKingSide[WHITE_SIDE] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    canCastleQueenSide[BLACK_SIDE] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    canCastleKingSide[BLACK_SIDE] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (castling != "-") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (auto character : castling) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             switch (character) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 'k': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    canCastleKingSideWhite = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    canCastleKingSide[WHITE_SIDE] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 'q': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    canCastleQueenSideWhite = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    canCastleQueenSide[WHITE_SIDE] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 'K': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    canCastleKingSideBlack = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    canCastleKingSide[BLACK_SIDE] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 'Q': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    canCastleQueenSideBlack = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    canCastleQueenSide[BLACK_SIDE] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw runtime_error("invalid castling right: "s + character); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -122,13 +122,13 @@ std::string ChessGame::generateFen(void) const 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     string board = this->board.getFenBoard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    string turn = this->turn == Turn::WHITE ? "w"s : "b"s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    string turn = this->turn == WHITE_SIDE ? "w"s : "b"s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     string castlingRights = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (canCastleKingSideBlack ? "K"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (canCastleQueenSideBlack ? "Q"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (canCastleKingSideWhite ? "k"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (canCastleQueenSideWhite ? "q"s : ""s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (canCastleKingSide[BLACK_SIDE] ? "K"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (canCastleQueenSide[BLACK_SIDE] ? "Q"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (canCastleKingSide[WHITE_SIDE] ? "k"s : ""s) + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (canCastleQueenSide[WHITE_SIDE] ? "q"s : ""s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (castlingRights.empty()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         castlingRights = "-"s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |