1 2 #include <stdio.h> 3 #include "deck.h" 4 5 6 CARD known[ CARDS ]; /* a deck */ 7 CARD deck[ CARDS ]; /* a deck */ 8 CARD hand[ 4 ]; /* a hand */ 9 10 int knownum; 11 12 13 main( argc, argv ) 14 15 int argc; 16 char *argv[]; 17 { 18 register int k, l, m; 19 int i, j, is, n, sum; 20 CARD ic, jc; 21 CARD d[ CARDS]; 22 23 printf( "Assuming cards are same suit\n" ); 24 if( argc == 2 ) { 25 is = atoi( *++argv ); 26 printf( "Starting at i = %d\n", is ); 27 } 28 makedeck( deck ); 29 for( i = is; i < RANKS; i++ ) { /* first card */ 30 ic.rank = i; 31 ic.suit = 0; 32 hand[0] = ic; 33 for( j = 0; j <= i; j++ ) { 34 printf( "%d %d: sum = %d\n", i, j, -10000000 ); 35 } 36 for( j = i + 1; j < RANKS; j++ ) { /* second card */ 37 jc.rank = j; 38 jc.suit = 0; 39 hand[1] = jc; 40 for( k = 0; k < CARDS; k++ ) d[k] = deck[k]; 41 n = CARDS; 42 remove( ic, d, n-- ); 43 remove( jc, d, n-- ); 44 sum = 0; 45 for( k = 0; k < n - 1; k++ ) { /* 3rd card */ 46 hand[2] = d[k]; 47 for( l = k + 1; l < n; l++ ) { /* 4th card */ 48 hand[3] = d[l]; 49 for( m = 0; m < n; m++ ) { /* cut card */ 50 if( m != l && m != k ) 51 sum += scorehand( hand, d[m], 4 ); 52 } 53 } 54 } 55 printf( "%d %d: sum = %d\n", i, j, sum ); 56 fflush( stdout ); 57 } 58 } 59 printf( "\nthe hand scores %d\n", i ); 60 } 61 62