#include #include #include struct figurky_s { int biela; int figurka; int row; int column; }; int compare(const void *a, const void *b) { const struct figurky_s *f1 = (const struct figurky_s*)(a); const struct figurky_s *f2 = (const struct figurky_s*)(b); if (f1->biela != f2->biela) { if (f1->biela == 0) return -1; else return 1; } if (f1->figurka < f2->figurka) return -1; else if (f1->figurka > f2->figurka) return 1; if (f1->biela == 1) { if (f1->row < f2->row) return -1; else if (f1->row > f2->row) return 1; } else { if (f1->row > f2->row) return -1; else if (f1->row < f2->row) return 1; } if (f1->column < f2->column) return -1; else if (f1->column > f2->column) return 1; return 0; } int main() { char vstup[200]; struct figurky_s figurky[200]; struct figurky_s f; int pocet, i, j, k, pocet_bielych = 0; pocet = 0; for (i = 1; i <= 8; i++) { scanf("%s", vstup); scanf("%s", vstup); for (j = 0; j < 8; j++) { k = j * 4 + 2; if (vstup[k] == '.' || vstup[k] == ':') continue; if (tolower(vstup[k]) == vstup[k]) { f.biela = 0; } else { f.biela = 1; pocet_bielych++; } switch (toupper(vstup[k])) { case 'K': f.figurka = 0; break; case 'Q': f.figurka = 1; break; case 'R': f.figurka = 2; break; case 'B': f.figurka = 3; break; case 'N': f.figurka = 4; break; case 'P': f.figurka = 5; break; } f.row = 9 - i; f.column = j; figurky[pocet++] = f; } } qsort(figurky, pocet, sizeof(struct figurky_s), compare); printf("White: "); j = 0; for (i = 0; i < pocet; i++) { if (figurky[i].biela == 1) { if (figurky[i].figurka == 0) printf("K%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 1) printf("Q%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 2) printf("R%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 3) printf("B%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 4) printf("N%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 5) printf("%c%d", figurky[i].column + 'a', figurky[i].row); j++; if (j < pocet_bielych) printf(","); } } j = 0; printf("\nBlack: "); for (i = 0; i < pocet; i++) { if (figurky[i].biela == 0) { if (figurky[i].figurka == 0) printf("K%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 1) printf("Q%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 2) printf("R%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 3) printf("B%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 4) printf("N%c%d", figurky[i].column + 'a', figurky[i].row); else if (figurky[i].figurka == 5) printf("%c%d", figurky[i].column + 'a', figurky[i].row); j++; if (j < pocet - pocet_bielych) printf(","); } } printf("\n"); return 0; }