#include #include int karty[52]; #define pocet 52 int ctikartu(char * buffer){ int h; switch (buffer[0]) { case 'C': h=0;break; case 'D': h=13;break; case 'S': h=26;break; case 'H': h=39;break; } switch (buffer[1]) { case '2': h += 0; break; case '3': h += 1; break; case '4': h += 2; break; case '5': h += 3; break; case '6': h += 4; break; case '7': h += 5; break; case '8': h += 6; break; case '9': h += 7; break; case 'T': h += 8; break; case 'J': h += 9; break; case 'Q': h += 10; break; case 'K': h += 11; break; case 'A': h += 12; break; } return h; } char buffer[110]; char * buf2; char rozd; int k1[13], k2[13], k3[13], k4[13]; int i; int * N, *S, *W, *E; int compare( const void * a,const void * b){ return *(int*)a - *(int*)b; } void printno(int i){ int no = i % 13; char zn; if ( no < 8 ){ printf("|%d %d", no+2, no+2 ); } else { switch( no ){ case 8: zn = 'T'; break; case 9:zn = 'J'; break; case 10: zn ='Q'; break; case 11:zn ='K'; break; case 12:zn ='A'; break; } printf("|%c %c", zn, zn ); } } void printcol( int i){ switch( i / 13 ){ case 0: printf("| C "); break; case 1:printf("| D "); break; case 2:printf("| S "); break; case 3:printf("| H "); break; } } int main() { rozd = ' '; while (rozd <= ' '){ scanf("%c", &rozd); } while ( rozd != '#' ){ scanf("%s", buffer ); scanf("%s", buffer+52 ); buf2 = buffer; // printf("%c\n%s\n", rozd, buffer); for (i=0; i<13; i++, buf2 += 8){ k1[i] = ctikartu(buf2); k2[i] = ctikartu(buf2 + 2 ); k3[i] = ctikartu(buf2 + 4 ); k4[i] = ctikartu(buf2 + 6 ); } qsort( k1, 13, sizeof(int), compare); qsort( k2, 13, sizeof(int), compare); qsort( k3, 13, sizeof(int), compare); qsort( k4, 13, sizeof(int), compare); switch ( rozd ){ case 'N': E = k1; S = k2; W = k3; N = k4; break; case 'W': N = k1; E = k2; S = k3; W = k4; break; case 'S': W = k1; N = k2; E = k3; S = k4; break; case 'E': S = k1; W = k2; N = k3; E = k4; break; } printf("South player:\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); for(i =0; i<13; i++){ printno( S[i]); } printf("|\n"); for(i =0; i<13; i++){ printcol( S[i]); } printf("|\n"); for(i =0; i<13; i++){ printno( S[i]); } printf("|\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); printf("West player:\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); for(i =0; i<13; i++){ printno( W[i]); } printf("|\n"); for(i =0; i<13; i++){ printcol( W[i]); } printf("|\n"); for(i =0; i<13; i++){ printno( W[i]); } printf("|\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); printf("North player:\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); for(i =0; i<13; i++){ printno( N[i]); } printf("|\n"); for(i =0; i<13; i++){ printcol( N[i]); } printf("|\n"); for(i =0; i<13; i++){ printno( N[i]); } printf("|\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); printf("East player:\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n"); for(i =0; i<13; i++){ printno( E[i]); } printf("|\n"); for(i =0; i<13; i++){ printcol( E[i]); } printf("|\n"); for(i =0; i<13; i++){ printno( E[i]); } printf("|\n"); printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n\n"); rozd = ' '; while (rozd <= ' '){scanf("%c", &rozd);} } return 0; }