#include #include #include #include int compare( const void *v1, const void *v2 ) { char *c1 = (char*)v1; char *c2 = (char*)v2; int i1 = *c1, i2 = *c2; if( i1 == 'S' ) i1 = 'E'; if( i2 == 'S' ) i2 = 'E'; if( i1 == i2 ) { i1 = c1[1]; i2 = c2[1]; if( i1 == 'T' ) i1 = 'a'; if( i1 == 'J' ) i1 = 'b'; if( i1 == 'Q' ) i1 = 'c'; if( i1 == 'K' ) i1 = 'd'; if( i1 == 'A' ) i1 = 'e'; if( i2 == 'T' ) i2 = 'a'; if( i2 == 'J' ) i2 = 'b'; if( i2 == 'Q' ) i2 = 'c'; if( i2 == 'K' ) i2 = 'd'; if( i2 == 'A' ) i2 = 'e'; } return i1-i2; } int main1() { int cards=52, i=0, ind,j; char hands[4][13][4]; char desc[4][20] = { "South", "West", "North", "East" }; ind = getchar(); if( ind == 'S' ) ind = 0; if( ind == 'W' ) ind = 1; if( ind == 'N' ) ind = 2; if( ind == 'E' ) ind = 3; ind = (ind + 1)%4; while( cards-- ) { hands[ind][i/4][0] = getchar(); if( hands[ind][i/4][0] == '\n' ) { cards++; continue; } hands[ind][i/4][1] = getchar(); hands[ind][i/4][2] = 0; /* printf( "%d, %d, %s\n", ind, i, hands[ind][i] );*/ i++; ind = (ind +1 ) % 4; } qsort( hands[0], 13, 4, compare ); qsort( hands[1], 13, 4, compare ); qsort( hands[2], 13, 4, compare ); qsort( hands[3], 13, 4, compare ); for( i=0; i<4; i++ ) { printf( "%s player:\n", desc[i] ); printf( "+---+---+---+---+---+---+---+---+---+---+---+---+---+\n" ); printf( "|" ); for( j=0; j<13; j++ ) { printf( "%c %c|", hands[i][j][1], hands[i][j][1] ); } printf( "\n|" ); for( j=0; j<13; j++ ) { printf( " %c |", hands[i][j][0] ); } printf( "\n|" ); for( j=0; j<13; j++ ) { printf( "%c %c|", hands[i][j][1], hands[i][j][1] ); } printf( "\n+---+---+---+---+---+---+---+---+---+---+---+---+---+\n" ); } return 0; } int main() { int c; while( (c=getchar()) ) { switch( c ) { case 'N': case 'S': case 'W': case 'E': ungetc (c,stdin ); main1(); break; case '#': return 0; break; } } return 0; }