Example #1
0
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++;
	}
}
Example #2
0
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++;
	}
}
Example #3
0
/*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;
		}
	}	
}