if (!allEmpty) {
if (!allBlock) {
ostream& operator<<(ostream& out, const Board& board) {        out << "  ";    for (int i = 0; i < Board::XSIZE; ++i)	out << "   " << char(i + 'A');    out << "\n   +";    for (int i = 0; i < Board::XSIZE; ++i)	out << "---+";    out << endl;    for (int y = 0; y < Board::YSIZE; ++y) {	string sublines[3];	bool allEmpty = true;	for (int x = 0; x < Board::XSIZE; ++x) {	    if (!board.field(x, y).isEmpty())		allEmpty = false;	    vector<string> atomLines = board.field(x, y).toAscii();	    for (int i = 0; i < 3; ++i) 		sublines[i] += atomLines[i] + '|';	}	if (!allEmpty) {	    for (int i = 0; i < 3; ++i) {		if (i == 1)		    out << ' ' << y << (y >= 10 ? "|" : " |");		else		    out << "   |";		out << sublines[i] << endl;	    }	    out << "   +";	    for (int i = 0; i < Board::XSIZE; ++i)		out << "---+";	    out << endl;	}    }    return out;}