void Queen::Forward_left(ChessBoard * board) { int i = 1; while (row - i >= 0 && column - i >= 0) { Piece * piece = board->GetPiece(row-i, column-i); if ( piece != NULL) { if ( piece->GetColor() != color) { BoardPosition bp(row-i, column-i); movements->insert(bp); } break; } BoardPosition bp(row-i, column-i); movements->insert(bp); i++; } }
void Queen::Back(ChessBoard * board) { int i = 1; while (row+i <= 7) { Piece * piece = board->GetPiece(row+i, column); if ( piece != NULL) { if ( piece->GetColor() != color) { BoardPosition bp(row+i, column); movements->insert(bp); } break; } BoardPosition bp(row+i, column); movements->insert(bp); i++; } }
/*DONE*/ void ChessXMLSaver::PrintPiecesOnTheBoard(Piece *** board) { //For each cell on the board... for(int row = 0; row < NUMROWS; row++) { for(int col = 0; col < NUMCOLS; col++) { //Get the piece at this location. Piece * p = board[row][col]; //If there isn't a piece there, then don't print a <piece> child. if(p == NULL) { continue; } //But if there is a piece, print its data to the file. file << "\t\t<piece type=\""; file << ConvertPieceTypeToString(p->GetType()) << "\" "; file << "color=\""; file << ConvertPieceColorToString(p->GetColor()) << "\" "; file << "row=\"" << row << "\" column=\"" << col << "\"/>" << endl; } } }